퍼셉트론 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
55번째 줄: 55번째 줄:
 
=== 수렴 ===
 
=== 수렴 ===
 
수용체는 선형 분류기 때문에, 훈련 세트 <math>D</math>가 선형으로 분리할 수 없는 경우, 즉 하이퍼플레인(hyperplane)에 의해 음의 예로부터 분리될 수 없는 경우, 모든 입력 벡터를 정확하게 분류한 상태로 결코 도달하지 않는다. 이 경우 표준 학습 알고리즘에 따라 점진적으로 대략적인 해결책이 접근되지 않고 대신 학습이 완전히 실패하게 된다. 따라서 훈련 세트의 선형 분리 가능성을 선험적으로 알 수 없는 경우 아래의 훈련 변형 중 하나를 사용해야 한다. 훈련 세트가 선형적으로 분리될 수 있는 경우, 수용자는 수렴할 것을 보장한다. 더욱이, 훈련 중 수용자가 체중을 조정하는 횟수에 상한선이 있다. 두 등급의 입력 벡터는 여백 <math>\gamma </math>이 있는 하이퍼플레인, 즉 중량 벡터 <math>\mathbf{w}, ||\mathbf{w}||=1</math>와 편향 조건 <math>b</math>이 있다고 가정해 본다. 즉, 모든 <math>j</math>에 대해 중량 벡터 <math>\mathbf{w}, ||\mathbf{w}||=1</math>가 있고, 모든 <math>j</math>에 대해 <math>\mathbf{w}\cdot\mathbf{x}_j > \gamma </math>가 <math>d_j=1</math>이 있고 <math>\mathbf{w}\cdot\mathbf{x}_j < -\gamma </math>이 <math>d_j=0</math>가 있는 편향 용어 <math>b</math>이 있으며, 여기서 <math>d_j</math>은 입력 <math>j</math>에 대한 퍼셉트론의 원하는 출력 값이다. 또한 <math>R</math>는 입력 벡터의 최대 규범을 나타내도록 한다. 1962년 노비코프(Novikoff)는 이 경우 퍼셉트론 알고리즘이 <math>O(R^2/\gamma^2)</math> 업데이트를 한 후 수렴한다는 것을 증명했다. 입증의 개념은 무게 벡터는 항상 음의 도트 제품이 있는 방향으로 경계된 양에 의해 조정되므로 <math>O(</math>√<math>t)</math>에 의해 위에 경계될 수 있다는 것인데, 여기서 <math>t</math>는 무게 벡터에 대한 변화의 수이다. 그러나 알 수 없는 만족스러운 중량 벡터가 존재한다면, 모든 변화는 입력 벡터에만 의존하는 양의 양만큼 이 알 수 없는 방향으로 진행되기 때문에 아래에도 <math>O(t)</math>로 경계할 수 있다.<ref name="위키피디아"></ref>
 
수용체는 선형 분류기 때문에, 훈련 세트 <math>D</math>가 선형으로 분리할 수 없는 경우, 즉 하이퍼플레인(hyperplane)에 의해 음의 예로부터 분리될 수 없는 경우, 모든 입력 벡터를 정확하게 분류한 상태로 결코 도달하지 않는다. 이 경우 표준 학습 알고리즘에 따라 점진적으로 대략적인 해결책이 접근되지 않고 대신 학습이 완전히 실패하게 된다. 따라서 훈련 세트의 선형 분리 가능성을 선험적으로 알 수 없는 경우 아래의 훈련 변형 중 하나를 사용해야 한다. 훈련 세트가 선형적으로 분리될 수 있는 경우, 수용자는 수렴할 것을 보장한다. 더욱이, 훈련 중 수용자가 체중을 조정하는 횟수에 상한선이 있다. 두 등급의 입력 벡터는 여백 <math>\gamma </math>이 있는 하이퍼플레인, 즉 중량 벡터 <math>\mathbf{w}, ||\mathbf{w}||=1</math>와 편향 조건 <math>b</math>이 있다고 가정해 본다. 즉, 모든 <math>j</math>에 대해 중량 벡터 <math>\mathbf{w}, ||\mathbf{w}||=1</math>가 있고, 모든 <math>j</math>에 대해 <math>\mathbf{w}\cdot\mathbf{x}_j > \gamma </math>가 <math>d_j=1</math>이 있고 <math>\mathbf{w}\cdot\mathbf{x}_j < -\gamma </math>이 <math>d_j=0</math>가 있는 편향 용어 <math>b</math>이 있으며, 여기서 <math>d_j</math>은 입력 <math>j</math>에 대한 퍼셉트론의 원하는 출력 값이다. 또한 <math>R</math>는 입력 벡터의 최대 규범을 나타내도록 한다. 1962년 노비코프(Novikoff)는 이 경우 퍼셉트론 알고리즘이 <math>O(R^2/\gamma^2)</math> 업데이트를 한 후 수렴한다는 것을 증명했다. 입증의 개념은 무게 벡터는 항상 음의 도트 제품이 있는 방향으로 경계된 양에 의해 조정되므로 <math>O(</math>√<math>t)</math>에 의해 위에 경계될 수 있다는 것인데, 여기서 <math>t</math>는 무게 벡터에 대한 변화의 수이다. 그러나 알 수 없는 만족스러운 중량 벡터가 존재한다면, 모든 변화는 입력 벡터에만 의존하는 양의 양만큼 이 알 수 없는 방향으로 진행되기 때문에 아래에도 <math>O(t)</math>로 경계할 수 있다.<ref name="위키피디아"></ref>
 
== 논리 회로 ==
 
=== AND 게이트 ===
 
아래의 표는 AND 게이트의 진리표이다.
 
:{| class="wikitable"
 
|- bgcolor="#ddeeff" align="center"
 
|colspan=2|'''INPUT''' || '''OUTPUT'''
 
|- bgcolor="#ddeeff" align="center"
 
| A || B || A NAND B
 
|- bgcolor="#ddffdd" align="center"
 
|0 || 0 || 0
 
|- bgcolor="#ddffdd" align="center"
 
|0 || 1 || 0
 
|- bgcolor="#ddffdd" align="center"
 
|1 || 0 || 0
 
|- bgcolor="#ddffdd" align="center"
 
|1 || 1 || 1
 
|}
 
 
이 AND게이트를 퍼셉트론으로 표현해 보겠다. 이를 위해서는 ​<math> w_{1},</math> <math> w_{2}, </math> <math> 0 </math>의 값을 적절하게 정해야 한다.
 
:<math> (w_{1}, w_{2}, 0) = (0.5, 0.5, 0.7) </math>
 
 
위 식일 때, AND 게이트의 조건을 만족한다.
 
=== NAND 게이트 ===
 
NAND 게이트는 Not AND를 의미하며 AND 게이트의 출력을 반대로 한 것과 같다.
 
:<math> (w_{1}, w_{2}, 0) = (-0.5, -0.5, -0.7) </math>
 
 
:{| class="wikitable"
 
|- bgcolor="#ddeeff" align="center"
 
|colspan=2|'''INPUT''' || '''OUTPUT'''
 
|- bgcolor="#ddeeff" align="center"
 
| A || B || A NAND B
 
|- bgcolor="#ddffdd" align="center"
 
|0 || 0 || 1
 
|- bgcolor="#ddffdd" align="center"
 
|0 || 1 || 1
 
|- bgcolor="#ddffdd" align="center"
 
|1 || 0 || 1
 
|- bgcolor="#ddffdd" align="center"
 
|1 || 1 || 0
 
|}
 
 
=== OR 게이트 ===
 
OR 게이트는 입력 신호 중 하나 이상이 1이면 출력이 1이 되는 논리 회로다.
 
:<math> (w_{1}, w_{2}, 0) = (0.5, 0.5, 0.2) </math>
 
:{| class="wikitable"
 
|- bgcolor="#ddeeff" align="center"
 
|colspan=2|'''INPUT''' || '''OUTPUT'''
 
|- bgcolor="#ddeeff" align="center"
 
| A || B || A OR B
 
|- bgcolor="#ddffdd" align="center"
 
|0 || 0 || 0
 
|- bgcolor="#ddffdd" align="center"
 
|1 || 0 || 1
 
|- bgcolor="#ddffdd" align="center"
 
| 0 || 1 || 1
 
|- bgcolor="#ddffdd" align="center"
 
|1 || 1 || 1
 
|}
 
 
위의 각 게이트(AND, NAND, OR)의 진리표들을 보면, 퍼셉트론 구조는 모두 동일하며 다른것은 매개변수<math> (w_{1}, w_{2}, 0)</math>의 값뿐이다. 따라서, 매개변수의 값만 적절히 조정하면 AND, NAND, OR을 구현할 수 있다.<ref>Excelsior-JH,  〈[https://excelsior-cjh.tistory.com/169 01. 퍼셉트론 - Perceptron]〉,  《티스토리》, 2018-09-12 </ref>
 
  
 
== 극복 ==
 
== 극복 ==
162번째 줄: 101번째 줄:
 
*〈[https://m.etnews.com/199408040043?SNS=00004 136 다층 퍼셉트론의 응용]〉,  《전자신문》, 1994-08-04  
 
*〈[https://m.etnews.com/199408040043?SNS=00004 136 다층 퍼셉트론의 응용]〉,  《전자신문》, 1994-08-04  
 
*데이터 분석하는 문과생 싸코,  〈[https://sacko.tistory.com/10 문과생도 이해하는 딥러닝 (1) - 퍼셉트론 Perceptron]〉,  《티스토리》, 2017-9-27
 
*데이터 분석하는 문과생 싸코,  〈[https://sacko.tistory.com/10 문과생도 이해하는 딥러닝 (1) - 퍼셉트론 Perceptron]〉,  《티스토리》, 2017-9-27
*Excelsior-JH,  〈[https://excelsior-cjh.tistory.com/169 01. 퍼셉트론 - Perceptron]〉,  《티스토리》, 2018-09-12
 
  
 
== 같이 보기 ==
 
== 같이 보기 ==

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)