문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 인공신경망 (문단 편집) == 본론 == [[파일:MultiLayer_Perceptron.svg]] [[https://youtu.be/aircAruvnKk|3blue1brown의 간단한 설명]] 인공신경망은 수많은 '노드'들로 구성된다. 하나의 노드는 여러 함수로 이루어진 하나의 프로그램인데, 이 프로그램의 구조 자체가 뉴런을 모방한다. 그리고 각 노드를 용도별로 분리한 단위를 '층'이라고 한다. 또한 각 노드가 얼마나 많은 노드와 신호(정보)를 주고 받는지 따질 수 있는 그 연결의 수를 '망'이라 한다. 그래서 최종적으로 인공신경망이라고 하는 것이다. 1. 노드의 구조 * 전이함수: 뉴런으로 따지자면 수상돌기다. 가중치가 사용된다. 전이함수란 받은 신호를 가중치와 곱하고, 그렇게 해서 나온 각각의 값들을 모두 더해서 가중합(평균값)이라는 값을 내는 기전(함수)이다. 이때 굳이 최초 신호에 가중치를 계산(곱)하고 더하는 이유가 무엇일까? 가령 우리는 성적표를 받을 때 각 과목 성적(신호)에 곱셈(가중치)과 덧셈을 사용하고 평균을 내서 학업 성취도를 판단한다. 대충 예시를 들어 '수학 30점, 국어 90점, 영어 60점, 국사 20점'을 받으면 '(30×0.25)+(90×0.25)+(60×0.25)+(20×0.25)'라는 식으로 평균을 계산해서 성취도 값을 낸다는 것이다. 이 예시에서는 가중치가 바로 0.25에 해당한다. 하지만 같은 성취도 값이라도 수능시험과의 비교냐, 또는 다른 무엇과의 비교냐에 따라서 다른 가중치를 사용하는 경우도 많다. 1학기 중간고사 대신 1학기 기말고사가 극악으로 어려웠고, 이후에 있을 2학기 중간고사도 어려울 것 같으면, 1학기 중간고사와 1학기 기말고사의 평균을 내서 2학기 중간고사 성적을 예측할 때 1학기의 중간고사와 1학기 기말고사에는 각각 다른 가중치를 도입해야 확률적으로 좀더 예측의 정확도가 높아진다는 식이다. 마찬가지로 전이함수에서는 다양한 가중치를 사용해서 그 값을 합해 평균을 내면, 신호의 진실성(정확도)을 높일 수 있다. * 활성함수: 뉴런으로 따지자면 핵이자 축삭 말단이다. 가중합을 걸러 정보를 내는 함수다. 출력함수라고도 한다. 활성함수는 전이함수로부터 받은 가중합(데이터의 크기)이 일정량을 넘느냐의 여부로 특정 값(0, 1)을 출력할 수 있게 해준다. 이때 일정량의 기준이 되는 값을 역치 또는 임계값, 혹은 '편향'이라고 한다. 역치(편향)란 데이터를 XOR(참/거짓)이라는 2진법의 논리 구조로 처리하기 위한 기준이다. 전이함수를 통해 받은 신호(데이터)가 임계값(역치)을 넘으면 참을 뜻하는 1로 값을 출력하고, 넘지 못하면 거짓인 0으로 표현한다는 것이다. 참고로 역치를 '편향'이라고도 하는 이유는 마치 편견을 가진 사람처럼, 잣대(기준)를 내세워서 이건 기준에 부합하지 않으니 거짓이고, 기준에 부합하니 참이다!라고 분류하기 때문이다. 실제로 그렇게 잣대를 가지고 세상을 이분법적으로 보는 사람을 '편견적인 성향'이 있다고 말하지 않은가.. * 파라미터는 가중치와 역치를 의미하는데, 노드에 있는 함수의 수는 곧 가중치와 역치의 수를 의미한다. 가중치는 데이터를 받아들이는 관문을 의미하고, 역치는 정보를 출력하는 관문을 뜻한다. 어느 한 노드에서 파라미터의 수가 많을 수록 다른 노드와 더 많이 연결된다. 그래서 파라미터는 매개변수(가중치와 역치)이자 연결관계도, 즉 망을 의미한다. 2. 층의 구조 * 노드들을 묶어서 용도 별로 나눈 것을 '층'이라고 한다. 최초로 신호를 받는 쪽에 위치한 노드들은 '입력층'이라고 하고, 최후에 정보를 내는 쪽에 위치한 노드들을 출력층이라고 한다. 그리고 성능을 높이기 위해 그 중간에 둔 노드 무리를 '은닉층'이라고 한다. * 이렇게 여러 층들로 구성된 상태를 퍼셉트론이라고 한다. 그런데 이렇게만 할 경우 전송되는 신호는 그냥 입력 신호의 선형 합이 될 뿐이고, 선형 합을 아무리 복잡하게 반복해 봤자 나오는 건 그냥 입력 신호의 선형 합밖에 없다. 다시 말해 아무리 많은 층을 쌓아봤자 행렬 곱하기 연산을 한 번 한 것과 동일한 결과가 나오는 것이다. 이와 같은 문제점은 은닉층의 노드의 활성함수에 비선형 함수를 도입하여 해결할 수 있다. 비선형 함수를 도입할 경우 인공신경망 모델로 비선형 문제를 풀 수 있고, 많은 층을 쌓을 경우 대체적으로 결과물이 향상된다. 더욱이 이러한 비선형 활성 함수의 경우 일반적으로 입력 값이 특정 값보다 큰 경우 함수의 국부적인 특성이 판이하게 변하게 되는데, 이는 노드가 임계치(편향) 이상의 자극을 받으면 활성화(참) 되어 반응을 하는 것과 매우 유사하기 때문에 이러한 비선형 함수가 활성 함수라고 불리게 되었다. 정리하자면 기본 원리는 단순하다. 다층 퍼셉트론이 기본인데, 몇 개의 층위를 만들어서 그 안에 '노드'들을 집어넣고, 이들을 무작위 연결 강도(가중치나 역치 등의 매개변수)로 연결한다. 각 '노드'들은 자신에게 들어온 신호를 곱해 모두 더해서([math(wx)]) 신호의 평균을 계산한 가중합을 낸 후, 이 가중합을 역치(기준 값)와 비교해서([math(wx + b)]) 참 또는 거짓이라는 정보로 판명한 뒤 이를 다음 뉴런(노드)으로 전달한다. 노드란 신호를 받고 내보내는 역할을 수행하는 프로그램(함수)이라고 생각하면 된다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기