인공지능 - 인공 신경망(다층 신경망)

Jamwon·2021년 6월 15일
4

TIL

목록 보기
7/8

저번에 이어서 다층 신경망 부터~!

다층 신경망

다층 신경망의 구조

하나 혹은 그 이상의 은닉층이 있는 피드포워드 신경망(feedforward neural network)

일반적으로 이 신경망은 공급뉴런으로 이루어진 입력층 하나, 계산 뉴런들로 이루어진 하나 이상의 은닉층, 계산 뉴런들로 이루어진 출력층 하나로 이루어져 있음.

입력신호는 한 층씩 순방향으로 전파

입력층

외부에서 받아들인 입력 신호를 은익층의 모든 뉴런으로 보낸다.
계산을 위한 뉴런은 거의 없다

출력층

은닉층에서 출력신호, 즉 자극패던을 받아 들이고 전체 신경망의 출력 패턴을 정한다.

은닉층

입력의 특성을 파악한다.
뉴런의 가중치는 입력패턴에 숨겨져있는 특성을 나타내며 출력층을 통한 출력 패턴의 계산에 이 특성이 반영된다.
은닉층은 목표 출력을 '숨기고'있다. 은닉층의 목표 출력은 해당 층에서 자체적으로 결정된다.
신경망에 은닉층이 두개 이상 들어갈 수 있다.

문자인식 신경망, 광학문자 인식시스템 등에서 쓰인다.

역전파 학습 법칙

역전파 망 구조

층이 세개인 신경망
i, j, k 는 각각 입력층, 은닉층, 출력층 뉴런

역전판 신경망의 학습 알고리즘

처음에 가중치는 랜덤이다.

훈련 입력 패턴을 신경망의 입력층에 전달
신경망은 출력층에서 출력 패턴이 생성될 때까지 층에서 층으로 입력 패턴을 전파

출력 패턴이 목표 패턴과 다르면 그 오차를 계산한 후 출력층에서 입력층 까지 신경망을 따라 거꾸로 오차가 전파되면서 오차를 줄이도록 가중치가 수정된다.

역전파 학습 알고리즘

1단계: 초기화

가중치 초기화는 각 뉴런별로 이루어진다. (0에 가까운 값으로 초기화한다.)

신경망의 모든 가중치와 임계값의 수준을 좁은 번위 안에서 균등 분포를 따라 임의의 수로 놓는다.

Fi는 신경망에 있는 뉴런 i의 총 입력 개수

2단계: 활성화

입력과 목표 출력을 적용하여 역전파 신경망을 활성화 한다.

은닉층에 있는 뉴런의 실제 출력을 계산한다.

현재 가중치로 가중합을 구하고 임계치를 빼서 출력값을 구한다.

sigmoid 함수를 통해 0~1 사이값을 출력한다.

출력층에 있는 뉴런의 실제 출력을 게산한다.

k번째 뉴런/ p번째 반복 / j번째 은닉층의 출력 / wjk(p) 가중치/ θk 출력층의 임계치

sigmoid는 활성화 함수, m은 출력층에 있는 뉴런 k의 입력 개수

3단계: 가중치 학습

출력 뉴런과 연관된 오차를 역방향으로 전파시키면서 역전파 신경망의 가중치를 갱신해 나간다.

출력층에 있는 뉴런에 대해 오차 기울기를 계산한다.

Yd,k(p)는 p번째 반복에서 뉴런 k의 목표 출력
Yk(p)는 실제 출력

뉴런의 출력 가중치 갱신

은닉층에 있는 뉴런의 오차 기울기를 계산한다.

은닉층에서의 가중치를 갱신

Wij(p) - 오차기울기를 대체

4단계: 반복

반복 횟수 p값을 1증가시키고, 2단계로 돌아가서 선택한 오차 기준을 만족할 때까지 과정을 반복

오차 제곱의 합

신경망의 성능을 보여주는 유용한 지표
한 패스 동안의 모든 훈련 집합 또는 에폭에 대한 오차 제곱의 합이 충분히 작으면 신경망이 수렴했다고 생각할 수 있다.

(목표출력 - 실제출력)^2 은 오차제곱 들의 합이 0에 가까워 질때 까지 계속함.

Exclusive-OR 연산을 수행하기 위한 신경망

입력 (0,0) (1,1) -> 0 출력 (1,0) (0,1) 이면 1출력
층이 세 개인 역전파 신경망

가중치 습득 과정

임의로 정한 초기 가중치와 임계값의 예

목표가 2개 즉 0,1로 표현 4가지 사례의 목표출력

입력 x1과 x2가 1이고, 목표출력 yd,5가 0인 훈련 사례에 대해 은닉층에 있는 뉴런 3과 4의 실제 출력은 ?

출력층에 있는 뉴런 5의 실제 출력

오차

출력층에 있는 뉴런 5의 오차 기울기

학습률 매개 변수 알파를 0.1로 가정(미리 정해놓음 너무크면 안된다)하고 가중치 보정값을 결정한다.

은닉층에 있는 뉴런 3과 뉴런 4의 오차 기울기 계산

출력층의 오차기울기 X 가중치들의 합 - 은닉층의 가중치

가중치 보정값 결정

신경망의 모든 가중치와 임계값 수준 갱신
은닉층 또는 출력층에 있는 뉴런에 적용되는 임계값 -1의 고정 입력에 할당왼 가중치로 간주하여 다룸

오차 제곱의 합이 0.001보다 작아질 때까지 이훈련 과정을 반복


4개의 사례를 1번씩 수행한게 1에폭!!

학습에 사용된 에폭들의 횟수에 대해 오차 제곱의 합
학습 곡선은 신경망이 얼마나 빨리 학습하고 있는지를 보여줌.

224회 에폭 즉 896회 반복 후 오차 기준을 만족시키는 가중치 집합과 임계값

완성된 신경망의 훈련 집합에 대한 테스트 결과

다층망이 형성하는 결정 경계

부호함수를 사용하는 맥클록과 피츠의 모델로 은닉층과 출력층에 있는 뉴런을 표현.

시그모이드 활성화 함수를 사용하는 뉴런들이 만들어낸 결정 경계를 그리는 일은 조금 어려울수 있다.

경사 하강법

함수 최적화 문제

어떤 목적 함수가 있을 때 이 함수를 최대로 하거나 최소로 하는 변수나 파라미터의 값을 찾는 문제

최소값을 찾아야 하는 다수의 지역해가 있는 복잡한 함수의 예

그레이언트(gradient) - 기울기 벡터

다변수함수 f(x1,x2...xn)이있을때 f는 그레디언트

위는 각 변수에 대한 f의 편미분을 원소로 갖는 벡터

그레이디언트는 주어진 위치에서 함수의 값이 가장 커지는 인접한 위치로의 방향을 나타냄

경사 하강법

경사 하강법은 함수의 그레디언트를 사용하여 함수의 값이 최소가 되는 위치의 파라미터를 찾는 방법

함수의 값이 줄어든느 방향은 함수를 파라미터별로 1차 편미분한 벡터의 반대 방향 = 그레디언트 반대방향

임의의 파라미터 값에서 시작하여, 함수에 대한 그레디언트의 반대 방향으로 파라미터 값을 조금씩 움직여서 함수가 최소가 되는 파라미터를 찾으려고 하는 것이 경사 하강법.

역전파 알고리즘은 경사 하강법을 적용하여 오차 함수의 값이 최소가 되는 가중치를 찾는 학습 알고리즘

2변수 함수

편미분

기울기 벡터


함수가 증가되는 방향

기울기 벡터는 절구 벽면을 올라가는 방향과 일치

h(x1,x2)를 최소로하는 (x1,x2)를 구하는 알고리즘

현재의 위치를 벡터 표기로 x=(x1,x2)^T로 해서 새로운 위치를 다음 식으로 계산(알파는 0,01과 같은 작은 값)

현재 파라미터 값에 대해 기울기 벡터를 구한 후, 그 반대 방향으로 파라미터를 수정하는 것을 반복 = 경사 하강법

반복하면서 최솟값 찾기!!!

역전파 알고리즘의 가중치 변화량 도출 과정



이 그림에서 극솟값만 구해질 때가 있다.
해결법: 초기값을 여러개를 둔뒤에 성능이 좋은걸 선택한다.

도출과정의 식들은 생략!

오차함수

신경망 모델의 학습은 오차 함수를 최소화하는 가중치를 찾는것

오차함수를 최소화 하는 가중치를 찾기 위해 기본적으로 경사하강법 사용

출력층의 출력값이 실수 값인 경우 오차 함수는 오차 제곱이나 오차 제곱의 평균으로 정의

구체적인 것은 PASS 했다!

인공 신경망의 문제해결

문자 인식 신경망

광학 문자 인식 시스템은 신경망을 상업적으로 응용한 예중 하나

스캐너를 통해 얻어진 비트맵으로 표현된 문자를 인식하기 위한 작업에 신경망을 이용

5x9 비트맵으로 표현된 0~9까지의 숫자

문자 인식을 위한 신경망의 구조

신경망의 구조와 크기는 문제의 복잡도에 따라 달라진다.

EX) 손으로 쓴 문자를 인식하려면 3~4개와 수백개의 뉴런을 포함하는 복잡한 다층 신경망이 필요

문제가 복잡하면 윽닉층의 갯수를 늘린다. BUT!
너무 많이 늘릴수는 없다!!

인쇄된 숫자 인식문제에 대해서는 은닉층이 1개인 3층 신경망으로도 충분히 정확하다.

은닉층 5개의 뉴런이 있다.
은닉층과 출력층에 있는 뉴런은 시그모이드 활성화 함수 사용
역전파 알고리즘으로 학습
모멘텀 상수는 0.95
가로 5x 세로 9 = 45개의 입력층

출력층에서 1~10 중에서 2의 값이 1에 가까운 값중 제일 크기 때문에 숫자 2로 인식한다.

출력층은 0~9까지의 숫자를 구분해야 하기 때문에 10개이다.

다른 예시

소리인식


소리의 스텍트럼을 분석해서 인식한다

운전대 조종


input은 전방의 이미지이다. 출력값은 좌회전 ~ 우회전이다.

얼굴이 보고있는 방향 파악


여러가지 사례를 넣으면서 가중치를 학습시킨다.

가속 학습/홈필드 신경망/ 양방향 연상 메모리 /자기조직 신경망은 수업을 진행하지 않았다!

요약

기계학습

기계 학습은 컴퓨터가 경험을 통해 학습하고 예를 통해 배우며 유추하여 학습하게 만드는 적응 메커니즘과 연관이있다.

학습 능력은 시간이 지나면서 지능형 시스템의 성능을 개선

가장 대표적인 접근법 중 하나는 인공 신경망

워렌 맥클록과 월터 피츠는 인공 신경망의 기초가 되는 아이디어를 제공

퍼셉트론

프랭크 로젠블랫이 제안한 간단한 신경망 형태

맥클록 -피츠 뉴런 모델을 바탕으로 조정가능한 가중치와 하드리미터로 구성. 또한 학습은 실제 출력과 목표 출력 간 격차를 줄이도록 가중치를 조절하는 방식으로 진행 (초기 가중치는 임의로 할당)

퍼셉트론은 선형으로 분리할 수 있는 함수만 학습가능
역전파 알고리즘으로 학습한 다층 퍼셉트론으로 한계를 극복 가능!

다층 신경망

공급뉴런으로 이루어진 입력층, 계산 뉴런으로 이루어진 하나이상의 중간 or 은닉층, 계산 뉴런으로 이루어진 출력층이 있는 피드포워드 신경망이다.

입력층 - 외부에서 신호를 받고 이 신호를 은닉층에 있는 모든 뉴런에 재분배.
은닉층 - 특성을 파악 뉴런의 가중치는 입력 패턴에 숨겨져있는 특성을 나타낸다.
출력층 - 전체 신경망의 출력 패턴을 정한다.

훈련입력 패턴을 신경망의 입력층에 전달 - 출력층에서 출력 패턴이 생성될 때까지 각 층에 입력 패턴을 전파 - 출력패턴이 목표 패턴과 다르면 오차를 계산후 출력층에서 입력층으로 거꾸로 전파 이와중에 가중치를 수정!

역전파 학습

널리 쓰이지만 계산 부담이 크고 학습이 느리다. 따라서 실제 응용할 때는 순수한 역전파 알고리즘을 거의 사용하지 않는다.

다층 신경망은 시그모이드 활성화 할수가 쌍곡 탄젠트로 표현될때 좀더 빠르게 학습.

끝!

profile
한걸음씩 위로 자유롭게

0개의 댓글