인공신경망 편집하기

이동: 둘러보기, 검색

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

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
85번째 줄: 85번째 줄:
  
 
==종류==
 
==종류==
===퍼셉트론===
+
* '''[[퍼셉트론]]'''(perceptron)
퍼셉트론(perceptron)뉴런의 수학적 모델을 말하며, 최초로 제안된 신경망 알고리즘이다. 단층퍼셉트론이라고도 하는 이 알고리즘의 동작원리는 활성 함수가 내놓는 결과값이 실제 값과 오류가 최소가 되도록 입력층에서 전달되는 값들에 곱해지는 가중치의 값을 결정하는 것이다. 이때 활성함수는 1개이며 은닉층이 존재하지 않고 입력층과 출력층만 존재하기 때문에 출력층의 결과값을 확보한 실제값과 비교하여 오차가 최소가 되도록 가증치를 업데이트한다.
+
: 뉴런의 수학적 모델을 말하며, 최초로 제안된 신경망 알고리즘이다. 단층퍼셉트론이라고도 하는 이 알고리즘의 동작원리는 활성 함수가 내놓는 결과값이 실제 값과 오류가 최소가 되도록 입력층에서 전달되는 값들에 곱해지는 가중치의 값을 결정하는 것이다. 이때 활성함수는 1개이며 은닉층이 존재하지 않고 입력층과 출력층만 존재하기 때문에 출력층의 결과값을 확보한 실제값과 비교하여 오차가 최소가 되도록 가증치를 업데이트한다.
  
퍼셉트론은 선형 분류기로 [[XOR]] 문제와 같은 비선형 분류를 할 수 없다. 즉, 단층 퍼셉트론을 이용하면 AND, NAND, OR게이트를 쉽게 구현할 수 있다. 하지만 단층퍼셉트론만으로 구현이 불가능한 게이트가 있는데 바로 XOR게이트이다.  퍼셉트론의 게이트 연산에서 쓰이는 것은 두 개의 입력값과 하나의 출력값이다. XOR게이트는 입력값 두 개가 서로 다른 값을 가지고 있을때에만 출력값이 1이 되고, 입력값 두 개가 서로 같은 값을 가지면 출력값이 0이 되는 게이트이다. 퍼셉트론의 코드에 아무리 많은 가중치와 편향을 넣어도 XOR게이트를 구현하는 것은 불가능하다. 단층퍼셉트론은 직선 하나로 두 영역을 나눌 수 있는 문제에 대해서만 구현이 가능하다.<ref> WikiDocs, 〈[https://wikidocs.net/24958 딥 러닝을 이용한 자연어 처리 입문]〉, 《WikiDocs》, 2019-09-18</ref>
+
: 퍼셉트론은 선형 분류기로 [[XOR]] 문제와 같은 비선형 분류를 할 수 없다. 즉, 단층 퍼셉트론을 이용하면 AND, NAND, OR게이트를 쉽게 구현할 수 있다. 하지만 단층퍼셉트론만으로 구현이 불가능한 게이트가 있는데 바로 XOR게이트이다.  퍼셉트론의 게이트 연산에서 쓰이는 것은 두 개의 입력값과 하나의 출력값이다. XOR게이트는 입력값 두 개가 서로 다른 값을 가지고 있을때에만 출력값이 1이 되고, 입력값 두 개가 서로 같은 값을 가지면 출력값이 0이 되는 게이트이다. 퍼셉트론의 코드에 아무리 많은 가중치와 편향을 넣어도 XOR게이트를 구현하는 것은 불가능하다. 단층퍼셉트론은 직선 하나로 두 영역을 나눌 수 있는 문제에 대해서만 구현이 가능하다.<ref> WikiDocs, 〈[https://wikidocs.net/24958 딥 러닝을 이용한 자연어 처리 입문]〉, 《WikiDocs》, 2019-09-18</ref>
  
===다층퍼셉트론===
+
* '''[[다층퍼셉트론]]'''(multi layer perceptron)
다층퍼셉트론(multi layer perceptron)입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망이다. 네트워크는 입력층, 은닉층, 출력층방향으로 연결되어 있고, 각 층내의 연결과 출력층에서 입력층으로 직접적 연결이 없다. 이를 전방향(feedforward) 네트워크 또는 순전파라고 한다. 다층퍼셉트론은 단층 퍼셉트론과 유사한 구조를 가지지만, 중간층과 각 구성단위의 입출력 특성을 비선형으로 하여 네트워크 능력을 향상시켜 퍼셉트론의 단점들을 극복했다. 다층퍼셉트론의 동작원리는 단층 퍼셉트론의 동작원리와 크게 다를 것이 없다. 다른점은 단층 퍼셉트론은 활성함수가 1개라는 점이고, 다층 퍼셉트론은 은닉층과 출력층에 존재하는 활성 함수가 여러 개이며, 이에 따라 가증치도 여러개인 것이다. 다층퍼셉트론의 동작원리는 다음과 같다.
+
: 입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망이다. 네트워크는 입력층, 은닉층, 출력층방향으로 연결되어 있고, 각 층내의 연결과 출력층에서 입력층으로 직접적 연결이 없다. 이를 전방향(feedforward) 네트워크 또는 순전파라고 한다. 다층퍼셉트론은 단층 퍼셉트론과 유사한 구조를 가지지만, 중간층과 각 구성단위의 입출력 특성을 비선형으로 하여 네트워크 능력을 향상시켜 퍼셉트론의 단점들을 극복했다. 다층퍼셉트론의 동작원리는 단층 퍼셉트론의 동작원리와 크게 다를 것이 없다. 다른점은 단층 퍼셉트론은 활성함수가 1개라는 점이고, 다층 퍼셉트론은 은닉층과 출력층에 존재하는 활성 함수가 여러 개이며, 이에 따라 가증치도 여러개인 것이다. 다층퍼셉트론의 동작원리는 다음과 같다.
  
 
# 각 층에서의 가증치를 임의의 값으로 설정한다. 보통 0으로 설정하게 되는데, 각 층에서 바이어스 값은 1로 설정한다.
 
# 각 층에서의 가증치를 임의의 값으로 설정한다. 보통 0으로 설정하게 되는데, 각 층에서 바이어스 값은 1로 설정한다.
98번째 줄: 98번째 줄:
 
# 모든 트레이닝 데이터에 대해서 출력층의 활성 함수에 의한 결과값과 실제값이 허용오차안에 들면 학습을 종료한다.  
 
# 모든 트레이닝 데이터에 대해서 출력층의 활성 함수에 의한 결과값과 실제값이 허용오차안에 들면 학습을 종료한다.  
  
다층퍼셉트론은 단층퍼셉트론과 달리 입력층과 출력층 사이에 은닉층이 존재하고, 은닉층의 출력값에 대한 기준값을 정의할 수 없기 때문에 은닉층에서 어떤값이 출력되어야 맞는지에 대한 기준이 없다. 다층 퍼셉트론에서는 출력층에서 발생하는 오차값을 이용해 은닉층으로 [[역전파]]시켜 은닉층에서 발생하는 오차값에 따라 은닉층의 가증치를 업데이트한다.
+
: 다층퍼셉트론은 단층퍼셉트론과 달리 입력층과 출력층 사이에 은닉층이 존재하고, 은닉층의 출력값에 대한 기준값을 정의할 수 없기 때문에 은닉층에서 어떤값이 출력되어야 맞는지에 대한 기준이 없다. 다층 퍼셉트론에서는 출력층에서 발생하는 오차값을 이용해 은닉층으로 [[역전파]]시켜 은닉층에서 발생하는 오차값에 따라 은닉층의 가증치를 업데이트한다.
  
===컨볼루션신경망===
+
* '''[[컨볼루션신경망]]'''(convolution neural network, CNN)
컨볼루션신경망(convolution neural network, CNN)정규화된 버전의 다층퍼셉트론으로 CNN이라고도한다. 컨볼루션신경망은 정규화를 향한 다른 접근 방식을 취한다. 데이터에서 계층적 패턴을 활용해 더 작고 간단한 패턴을 사용하여 복잡한 패턴을 조립한다. 컨볼루션신경망은 다른 인공신경망들에 비해 상대적으로 전처리를 거의 사용하지 않는다. 네트워크가 기존 알고리즘에서 수작업으로 제작된 필터를 학습한다는 것을 의미하는데, 이미지나 비디오인식, 분류, 자연어 처리에 응용된다. 컨볼루션 신경망은 다음 3가지 특징을 가진다.
+
: 정규화된 버전의 다층퍼셉트론으로 CNN이라고도한다. 컨볼루션신경망은 정규화를 향한 다른 접근 방식을 취한다. 데이터에서 계층적 패턴을 활용해 더 작고 간단한 패턴을 사용하여 복잡한 패턴을 조립한다. 컨볼루션신경망은 다른 인공신경망들에 비해 상대적으로 전처리를 거의 사용하지 않는다. 네트워크가 기존 알고리즘에서 수작업으로 제작된 필터를 학습한다는 것을 의미하는데, 이미지나 비디오인식, 분류, 자연어 처리에 응용된다. 컨볼루션 신경망은 다음 3가지 특징을 가진다.
  
 
# 뉴런의 3D볼륨 : 컨볼루션의 층은 폭, 높이, 깊이의 3차원으로 배열된 뉴런을 가지는데 층 내부의 뉴런은 수용영역이라고 불리는 층의 작은 영역에만 연결된다. 로컬이나 완전히 연결된 고유한 유형의 계층들이 쌓여 컨볼루션신경망의 [[아키텍처]]를 형성한다.
 
# 뉴런의 3D볼륨 : 컨볼루션의 층은 폭, 높이, 깊이의 3차원으로 배열된 뉴런을 가지는데 층 내부의 뉴런은 수용영역이라고 불리는 층의 작은 영역에만 연결된다. 로컬이나 완전히 연결된 고유한 유형의 계층들이 쌓여 컨볼루션신경망의 [[아키텍처]]를 형성한다.
107번째 줄: 107번째 줄:
 
# 공유 가중치 : 컨볼루션신경망에서 각 필터는 전체 시야에 걸쳐 복제되는데 이 복제된 단위는 동일한 가중치와 바이어스값을 공유하고 피쳐 맵을 형성한다. 주어진 회선 레이어의 모든 뉴런이 특정 응답 필드 내에서 동일한 기능에 응답한다는 것을 뜻한다. 이런 방식으로 단위를 복제하면 위치와 관계없이 지형지물을 감지할 수 있게 되고, 변환 불변의 속성을 구성할 수 있다.<ref> 〈[https://en.wikipedia.org/wiki/Convolutional_neural_network 컨볼루션신경망]〉, 《위키피디아》</ref>
 
# 공유 가중치 : 컨볼루션신경망에서 각 필터는 전체 시야에 걸쳐 복제되는데 이 복제된 단위는 동일한 가중치와 바이어스값을 공유하고 피쳐 맵을 형성한다. 주어진 회선 레이어의 모든 뉴런이 특정 응답 필드 내에서 동일한 기능에 응답한다는 것을 뜻한다. 이런 방식으로 단위를 복제하면 위치와 관계없이 지형지물을 감지할 수 있게 되고, 변환 불변의 속성을 구성할 수 있다.<ref> 〈[https://en.wikipedia.org/wiki/Convolutional_neural_network 컨볼루션신경망]〉, 《위키피디아》</ref>
  
===순환인공신경망===
+
* '''[[순환인공신경망]]'''(recurrent neural network)
순환인공신경망(recurrent neural network)전방 신경망과 정 반대의 동작을 한다. 노드들 간의 양방향 데이터가 이동하며 데이터는 선형적으로 전달된다. 데이터가 후방 노드에서 전방놓드로 전달하며 연산이 수행된다.<ref name="위키"></ref> 뉴런의 출력이 다시 입력으로 역전파되는 재귀적인 연결구조를 가진다. 다층퍼셉트론이 과거은닉정보를 기억하지 못한다는 단점을 해결했다. 기존의 심층신경망의 경우 각 층마다 매개변수들이 독립적이었으나, 순환인공신경망은 이를 공유한다. 따라서 현재의 출력결과는 이전 결과에 영향을 받고 은닉층, 즉 일종의 메모리 역할을 한다.
+
: 전방 신경망과 정 반대의 동작을 한다. 노드들 간의 양방향 데이터가 이동하며 데이터는 선형적으로 전달된다. 데이터가 후방 노드에서 전방놓드로 전달하며 연산이 수행된다.<ref name="위키"></ref> 뉴런의 출력이 다시 입력으로 역전파되는 재귀적인 연결구조를 가진다. 다층퍼셉트론이 과거은닉정보를 기억하지 못한다는 단점을 해결했다. 기존의 심층신경망의 경우 각 층마다 매개변수들이 독립적이었으나, 순환인공신경망은 이를 공유한다. 따라서 현재의 출력결과는 이전 결과에 영향을 받고 은닉층, 즉 일종의 메모리 역할을 한다.
  
 
==전망==
 
==전망==

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

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