Study/Artificial Intelligence

인공 신경망(Artificial Neural Network)

빨간당무 2009. 7. 1. 04:27
■ 인공 신경망이란?
- 인간의 두뇌와 신경 시스템을 닮은 정보처리소자
- 연결주의 기법 - 뉴런들을 연결하여 문제해결 모델을 만듬

  -- 출처 : http://ipcp.edunet4u.net/~teacher07/bio1/biopic3/%EB%89%B4%EB%9F%B0.gif
- 뉴런 : 신경계의 기능적 최소단위
- 세포체 : 일정기간 동안 들어온 자극은 세포체내에 가중되고 임계치 보다 크면 뉴런을 활성
- 수상돌기 : 인접 뉴런들로부터 정보를 받아들이는 통로 역할
- 축색돌기 : 정보를 전달하기 위한 통로
- 시넵스 : 전달되는 신호의 크기를 조절


■ 인공뉴런의 구조
- 인공뉴런의 구조

  -- X1부터 Xn까지 입력 값에 각각 W1부터 Wn까지의 가중치를 곱하고 그 모든 합이 변형함수를 통해
      임계치가 초과되면 출력값이 발생하게 됨
- 여러가지 변형함수

- 시그모이드 함수 (c)
  예) 시그모이드 변형함수를 갖는 인공뉴런의 출력값 계산

- 하드리미터 함수 (a)
  예) 하드리미터 변형함수를 갖는 인공뉴런의 출력값 계산


중간값 Y의 값이 특정값보다 작으면 -1, 그 값보다 크면 1로 출력 결정


■ 다층 인공 신경망
- 하나의 인공 신경망

  -- 출처 : http://www.aistudy.co.kr/neural/MLP_kim.htm
  -- 각각의 작은 원은 perceptron(인공인지체)를 의미함
- 신경회로망이 커지고 복잡해 질수록, 더 나은 기능 수행
- 다층 인공 신경망 : 입력층과 출력층 사이에 새로운 층 추가
  -- 은닉층(hidden layer) 또는 중간층(internal layer)


■ 인공 신경망에서의 학습과정
- 1. 입력 값을 이용하여 인공 뉴런의 출력 값을 계산
- 2. 인공 뉴런이 계산한 출력 값과 사용자가 기대하는 출력 값을 비교
- 3. 기대하는 출력 값을 생성할 수 있도록 가중치 조절


■ 인공 신경망의 장단점
- 활용분야 : 패턴인식, 학습, 분류, 일반화, 추상화, 불완전하고 잡음이 포함된 입력을 이용하는 시스템 등
- 장점
  -- 고장 허용성 : 전체 인공 신경망에 영향을 미치지 않음
  -- 일반화 : 불완전한 입력정보를 가지고도 적정한 결과 생성
  -- 적응성 : 새로운 환경에서 학습 수행 가능
- 단점
  -- 설명기능 약함
  -- 학습시키는데 많은 데이터와 시간이 필요
  -- 병렬처리가 가능한 하드웨어 비용이 비쌈


■ 인공 신경망 예제
- 하나의 인공뉴런이 OR연산자를 학습하는 과정
 입력  OR연산결과
 (목표출력값F)
 X1  X2
 0  0  0
 0  1  1
 1  0  1
 1  1  1
1. 가중치 W의 초기값 이용 결과값 Y 생성함
  Y = ( X1 * W1 ) + ( X2 * W2 ) = ( 0 * 0.1 ) + ( 0 * 0.3 ) = 0
2. Y와 F가 같으면 완료하고 다르면, 차이(d) = F - Y 이용함
  새로운 가중치 Wn = Wo + ( a * d * X )
3. F와 Y가 같을 때까지 반복함
4. 임계치는 0.5 사용 (5번에서 사용됨)
5. 새로운 입력 값을 이용 다시 Y생성함
  ( ( X1 * W1 ) + ( X2 * W2 ) ) > 0.5 이면 Y = 1
  ( ( X1 * W1 ) + ( X2 * W2 ) ) ≤ 0.5 이면 Y = 0
6. F와 같은 Y를 생성할 수 있는 W를 찾을 때까지 반복함

 Step  X1  X2  a  초기값  d  목표출력값(F)
 W1  W2  Y  W1  W2
 1  0  0  0  0.1  0.3  0  0.0  0.1  0.3
   0  1  1  0.1  0.3  0  1.0  0.1  0.5
   1  0  1  0.1  0.5  0  1.0  0.3  0.5
   1  1  1  0.3  0.5  1  0.0  0.3  0.5
 2  0  0  0  0.3  0.5  0  0.0  0.3  0.5
   0  1  1  0.3  0.5  0  1.0  0.3  0.7
   1  0  1  0.3  0.7  0  1.0  0.5  0.7
   1  1  1  0.5  0.7  1  0.0  0.5  0.7
 3  0  0  0  0.5  0.7  0  0.0  0.5  0.7
   0  1  1  0.5  0.7  1  0.0  0.5  0.7
   1  0  1  0.5  0.7  0  1.0  0.7  0.7
   1  1  1  0.7  0.7  1  0.0  0.7  0.7
 4  0  0  0  0.7  0.7  0  0.0  0.7  0.7
   0  1  1  0.7  0.7  1  0.0  0.7  0.7
   1  0  1  0.7  0.7  1  0.0  0.7  0.7
   1  1  1  0.7  0.7  1  0.0  0.7  0.7

<End>

'Study > Artificial Intelligence' 카테고리의 다른 글

Alpha-Beta pruning  (0) 2010.09.29
Turing Test VS Eliza  (0) 2010.08.16
Artificial Intelligence: Engineering VS Science ?  (0) 2010.08.16
유전 알고리즘(Genetic Algorithm)  (1) 2009.07.01
AI 졸업고사 단순정리  (2) 2009.03.26