카테고리 없음

인공신경망 및 퍼셉트론

SodaCocoa 2024. 2. 14. 12:07

1) ANN(Artificial Neural Networks) 개념

 

2) 퍼셉트론: 퍼셉트론은 인공지능의 초반 기계학습 방법 

다수의 입력으로부터 하나의 결과를 내보내는 알고리즘으로 퍼셉트론은 w0, x0 바이어스와 w1,w2의 가중치를 계속 변경하는 심층신경망의 기본이 됨.

 

3) 단층퍼셉트론(논리게이트) : 매컬리-피츠의 신경회로망

단층 퍼셉트론은 값을 보내는 단계과 값을 받아서 출력하는 두 단계로만 이루어집니다. 이때 이 각 단계를 보통 층(layer)이라고 부르며, 이 두 개의 층을 입력층(input layer)출력층(output layer)이라고 합니다.

 

-파라미터를 학습을 통해 결정함

- 학습 표본과 그에 대한 정답 신호를 세트로 하여 학습(지도학습)

- 출력값과 정답 신호 사이의 오차를 수정해 나가는 학습방법
   (
오차 수정학습)을 취함

 

 

X0*W0+X1*W1+X2*W2 값(y값)과 AND연산 값이 같으면 성공, 다르면 실패

 

4) 단층퍼셉트론 정리

각 노드의 가중치와 입력치를 곱한것을 모두 합한 값이 활성함수에 의해 판단되고 그 값이 임계치(보통 0)보다 크면

뉴런이 활성화되고 결과값으로 1을 출력

뉴런이 활성화되지 않으면 결과값으로 -1 출력

 

장점

오차 수정 학습을 사용
자동으로 파라미터 값을 얻음
퍼셉트론이 가져온 가장 큰 변화

 

단점

선형 분리(직선한개로만 나누어야함) 가능한 문제만 해결가능
XOR과같은비선형 불가능

 

6) 아달라인(Adaline)과 경사하강법  - 1960년에 발표된 Adaptive Linear Neuron

기존의 퍼셉트론

아달라인

 

7) 다층퍼셉트론의 구조

➢ 다층 퍼셉트론은 입력층과 출력층 사이에 하나 이상의 중간층이 존재함 이 중간층을 은닉층(Hidden layer)라 부름

➢ 입력층 -> 은닉층 -> 출력층 방향으로 연결되어 있음

     -->출력 층에서 입력층으로 연결이 없음 : (전방향 네트워크)

➢ 중간층과 각 유니트의 입출력 특성을 비선형으로 만듦으로써, 네트워크 능력을 향상시키고, 단층 퍼셉트론의 단점을 극복

➢ 층의 개수가 증가할 수록 퍼셉트론이 형성하는 결정 구역의 특성은 더욱 고급화됨

    -->층이 2층이면, 오목한 개구역 또는 오목한 폐구역을 형성하고, 3층이면, 이론상 어떤 구역도 형성 가능함

 

➢ MLP는 입력층(Input layer)과 출력층(output layer) 사이에 하나 이상의 은닉층(hidden layer)을 가지는 전방향(feed-forward) 신경회로망

->입력층 : 각 입력변수에 대응되는 마디들로 구성되어 있음

->은닉층 : 입력층으로부터 전달되는 변수값들의 선형 결합을 비선형함수로 처리하여 출력층에 전달함

->출력층 : 목표변수에 대응하는 마디들로 구성되어 있음

 

 

 

 

학습 규칙

➢ 활성화 함수: 시그모이드 함수

1단계. 가중치와 임계값을 초기화

2단계. 입력과 목표 출력을 제시

3단계. 제시된 입력벡터를 이용하여 은닉층 j번째 뉴런으로 입력값 계산

4단계. 시그모이드 함수를 사용하여 은닉층의 출력(Opj)을 계산

5단계. 은닉층의 출력을 이용하여 출력층 뉴런 k로의 입력값을 계산

 

6단계. 시그모이드 함수를 사용하여 출력층의 출력(ypk)을 계산

7단계. 입력패턴의 목표출력( )과 실제 출력 ( ) 과의 오차를 줄일 수 있는 가중치의 변화 값을 다음과 같이 구함

 

이때, 추후에 (단계11) 가중치의 변화를 계산하기 위해 미리 아래와 같이 계산

8단계. 출력층 오차값( )과 은닉층과 출력층의 가중치값(Wkj)을이용해 은닉층 의 오차( ) 계산

 

9단계. 4단계와 7단계에서 구한 은닉층 뉴런 j의 출력값( )과 출력층의 오차값( )을 사용하여 출력층의 가중치( )를 갱신(임계값도 조정)

10단계. 출력층에서와 마찬가지로 입력층과 은닉층의 가중치 값과 임계값 갱신

 

11단계. 모든 학습패턴에 대하여 전부 학습 할 때까지 2단계로 분기하여 반복 수행함

12단계. 출력층의 오차합 E가 허용값 이하이거나 최대 반복회수보다 크면 종료, 그렇지 않으면 2단계로 가서 반복함

시그모이드 함수

시그모이드 함수 (sigmoid function) 단극성 또는 양극성 비선형 연속 함수이며, 신경망 모 델의 활성화 함수로써 가장 널리 사용되고 있음

 

단극성 시그모이드 함수

단극성 시그모이드 함수 사용의 경우 뉴런의 출력 = 0 ~ 1 NET = 0이면 뉴런의 출력은 1/2

양극성 시그모이드 함수

양극성 시그모이드 함수 사용의 경우 뉴런의 출력 = -1 ~ 1 NET = 0이면 뉴런의 출력은 0

 

 

 

 

 


 

코드를 이용한 실습

#시그모이드함수식을 제공해주는 모듈
from scipy.special import expit    
xList = [0.25,7,9,20]
for x값 in xList:
  print(x값,'input x값을 sigmoid로 계산한결과-->',expit(x값))

 

 

넘파이함수의 np.exp를 이용하여서 자연상수와 자연로그를 계산할수도 있음.
import numpy as np
xList = [0.25,7,9,20]
yList=[]
for x값 in xList:
  yList.append(1/ (1+np.exp(-x값)))
print(yList)

import matplotlib.pyplot as plt
plt.plot(xList,yList)

 

결과값