확률과 통계를 잘하시는분은 넘어가셔도 좋습니다.

실제 예시를 들어서 간단하게만 다루고자 합니다.


주사위를 예로 들어 보자. 하나의 주사위를 던지는 실험에서 샘플공간은 아래와 같다.

Sample space

각 이벤트의 확률은 1/6이다.


두개의 주사위를 던졌을 때의 샘플공간은 아래와 같다.


확률(Probability)

하나의 주사위를 던졌을 때 짝수가 나오는 경우(Event)는 아래와 같다.

확률 P(E)=0.5 이다.


두개의 주사위를 던졌을 때, 그 합이 10인 경우는 아래와 같다.

확률 P(V)=3/36=1/12 이다.


어떤 이벤트 A에 대하여 그 이벤트가 일어날 확률은

P(A) 로 표현할 수 있다.

0<=P(A)<=1

(0은 일어나지 않음, 1은 항상 일어남)


교집합 확률(the joint probability)

1.

짝수 이벤트A와 홀수 이벤트 B


두 집합의 교집합


교집합의 확률


2.

'주사위1을 던졌을 때 5가 나올' 확률

이벤트 : 주사위 1을 던졌을 때 5가 나온다.


'주사위 2를 던졌을 때 5가 나올' 확률


두 주사위 모두 5가 나올 확률


3.독립된 두 이벤트의 교집합의 확률



합집합(Union)


서로 독립된(independent), 배타인(exclusive) 두 집합간의 합집합

서로 의존(dependent)인 두 집합간의 합집합


주사위 1또는 주사위 2에서 숫자 5가 나올 확률


두 주사위의 합이 10이 될 확률


조건부 확률(Conditional Probability)

P(B)≠0 일 때, 이벤트 B가 일어났을 때 이벤트 A가 일어날 확률 P(A|B)


ex1)

상자 안에 흰공 2개, 검은공 2개가 들어있고 이 안에서 한개의 공을 뽑을 때

P(W)=1/2

P(W1)=1/4

P(B)=1/2

P(B1)=1/4


P(W1|W)=(1/4)/(1/2)=1/2

P(B1|W)=0/(1/2)=0


ex2)

상자 안에 흰공 2개, 검은공 2개가 들어있고 차례로 1개씩 총 2개의 공을 꺼낼 때

처음에 흰공을 뽑았을 때, 다음에 흰공을 뽑을 확률은?


W1을 뽑은 후 W2를 뽑을 확률과 W2를 뽑고 W1을 뽑을 확률



Bayes' rule

두 사건 A와 B에 대해서 다음 식이 성립하며


두 사건이 서로 독립일때 아래 식이 성립한다.


이산 확률변수

샘플공간Ω에서 확률변수 X는 각각의 유일한 변수값에 대응한다.

예를들어 주사위 실험에서, 확률변수 X는 아래와 같은 이산값들을 가진다.


확률밀도함수는 확률변수 X에 대하여 아래와 같이 정의된다.


기대값

.확률변수 X에 대한 기대값은 아래와 같이 정의된다.



주의할 것은 평균과는 개념이 약간 다르다는 것이다.

주사위를 12번 던졌을 때 평균값은 12을 던져봐야 알 수 있다. 그러나 각 주사위의 숫자가 나올 확률은 1/6이기 때문에 12번을 던졌을 때 그 값의 평균이 21/6이 될것임을 기대할 수 있다. 이는 각각의 변수값에 확률을 곱한 값이다.


분산과 표준편차

확률변수 X에 대한 분산은 표준편차σ 의 제곱이며 아래식과 같다.


연속확률변수

앞선 이산확률변수와는 다르게 함수적으로 표현될 수 있는 연속된확률변수로 아래와 같은 식으로 표현된다.


Y=f(X)



연속된 값으로 이루어진 x에 대한 기대값은 모든 x에 대한 x와 확률p의 곱의 적분으로 표현될 수 있을 것이다.

확률변수 x에 대한 확률p의 분포그래프 이다.여기서 중요한것은 저 그래프의 넓이가 확률의 총 합으로 그 값이 1이라는 것이다.


표준편차는 아래 과정을 통해서 간략하게 계산할 수 있다.



probability density function:PDF, 확률밀도함수

앞서 설명한 확률분포는 아래와 같이 균일분포로 표현할 수 있으며


다음과 같은 정규분포로 표현할 수 있다.



정규분포 및 표준정규분포와 관련된 심층적인 개별학습이 필요하다.


'지능제어' 카테고리의 다른 글

RBFN 링크  (0) 2014.12.04
RBF(Radial Basis Function) 신경망  (0) 2014.10.27
확률가우시안  (0) 2014.10.27
역전파 알고리즘(BackPropagation)  (0) 2014.10.27
다층신경망[개념]  (0) 2014.10.26
퍼셉트론[개념]  (0) 2014.10.26

수업에서 배운 내용으로 인공지능개론(한빛미디어)와 차이가 있다.

LMS알고리즘 역시 수업에서 배운 내용이었으므로 미리 읽어봄이 좋겠다.

또한 어느정도 공부를 한 사람을 전제로 하기 때문에 모르는 단어가 나올경우 찾아보길 바란다.


수업자료 pdf를 첨부한다.

지능(5)_역전파.pdf


퍼셉트론을 다룰 때, 그 한계에 대해서 언급하였으며 MLP는 xor같은 비선형적인 문제를 해결할 수 있다.

아래는 역전파 알고리즘을 적용시킨 다층신경망(MultiLayerPerceptron)이다

신경망 : 입력층, 1층의 은닉층, 출력층으로 이루어진 1-1-1 MLP 

학습방법 : 역전파 알고리즘(Back Propagation)


중요한 컨셉은 아래와 같다.



역전파 신경망의 학습 알고리즘은 두 단계로 이루어진다.

첫째로 훈련 입력 패턴을 신경망의 입력층에 전달하고 신경망은 출력층에서 출력 패턴이 생성될 때까지 층에서 층으로 입력 패턴을 전파한다.(이 전파과정에서 활성화 함수, 가중치 등이 적용된다.)

출력 패턴이 목표 패턴과 다를 경우 그 오차를 계산하고 출력층에서 입력층까지 신경망을 따라 거꾸로 전파한다. 이 오차의 전파과정에서 가중치가 수정된다.


제일 위의 1-1-1 MLP모델을 예로 설명해 보자. 각 층의 유닛(Unit)에 대해 i,j,k의 number를 사용하기로 한다.

입력층의 각 뉴런의 값을 X11,X12...X1i로 표현한다.

은닉층의 뉴런의 값은 가중치와 bias를 반영하여 아래와 같이 표현된다.


위에서 언급하는 각 은닉층의 각 뉴런을 S21...S2j로 표현하고 이 뉴런에 활성화 함수를 적용시킨 값이 Yj(Xj)이다.

이는 출력층에서도 똑같이 적용되어 출력층의 각 뉴런의 값은 아래와 같다.


활성화 함수를 f()로 표현했을 때 각 뉴런의 출력은 아래와 같다.


역전파 알고리즘에서 가중치 갱신의 방법은 다양하게 존재한다. 여기에서 소개하는 방법은 오차 기울기(error gradient)를 다루는 Gradient descent 알고리즘이다. 개념적인 부분은 스스로 찾아보기 바란다.


Gradient descent알고리즘에서 가중치 정정 규칙은 아래와 같다.

왜 E를 위와같은 식으로 했는지는 아래의 과정을 거쳐나가면 알게된다. 우선 ek를 제곱한 이유는 오차가 +,- 어느 방향으로 확장해 나가는가와 상관없이 오차폭 자체를 줄여나가는 것이 목적이기 때문이다.


가중치의 개념을 제대로 이해하고 있다면 위의 식이 별 문제는 아닐것이다. 굳이 나의 짧은 지식으로 설명하자면, i층의 뉴런으로 부터 j층의 뉴런으로 값을 전파하면서, j의 각 뉴런에 따라 i의 각 뉴런이 미치는 영향의 정도가 다를 것이다. 학습이 반복되는 과정에서 오차를 줄여나가는데 영향력이 큰 가중치관계 wij의 값은 그 절대값의 크기가 커질것이고 그렇지 않은 wij는 0에 수렴하게 될 것이다. 아래 그림을 참고하자



입력층(input)과 hidden1층간의 관계의 가중치 wij에서

오차 e를 줄이는데 기여가 큰 가중치 관계는 빨간선으로, 기여가 작은 가중치 관계는 파란선으로 표시하였다. 빨간선의 가중치는 그 절대값이 클것이며 파란선의 가중치는 절대값이 0에 가까울 것이다.

가중치의 델타값의 E와 W간의 편미분이 이 기여도를 의미한다.


chain-rule을 적용하여 가중치 및 bias의 학습은 결과적으로 아래와 같다.


활성화 함수 및 가중치의 chain rule 적용 예시는 첨부된 pdf파일을 참고하길 바란다.


'지능제어' 카테고리의 다른 글

RBF(Radial Basis Function) 신경망  (0) 2014.10.27
확률가우시안  (0) 2014.10.27
역전파 알고리즘(BackPropagation)  (0) 2014.10.27
다층신경망[개념]  (0) 2014.10.26
퍼셉트론[개념]  (0) 2014.10.26
LMS(Linear Mean Square) Algorithm  (0) 2014.10.26

다층신경망(Multi layer neural Network)은 하나 혹은 그 이상의 '은닉층'이 있는 feedforward neural network이다.

이는 하나의 입력층과 출력층, 그리고 하나 이상의 은닉층으로 이루어져 있다.



출력층은 은닉층의 출력신호(자극 패턴)을 받아들이고 전체 신경망의 출력 패턴을 정한다.

은닉층의 뉴런은 신호의 특성을 파악한다. 가중치를 통해 입력패턴에 숨겨져 있는 특성을 알 수 있다. 출력층은 이 특성을 사용하여 출력패턴을 결정하는 것이다.


하나의 은닉층으로 모든 연속함수를 표현할 수 있으며 두 개의 은닉층으로 불연속 함수의 표현이 가능하다. 즉, 그저 연속함수를 표현할 것이면 하나의 은닉층이면 충분하다는 것이다.


은닉층의 연산부담

-은닉층 하나를 추가할 때마다 계산 부담은 지수적으로 늘어난다. 따라서 실제 응용 사례에서는 보통 3개 층 정도만 사용한다.


다층 신경망의 학습

다양한 학습 알고리즘이 존재하지만 가장 인기있고 잘 알려진 방법은 '역전파 방식'이다.


다층신경망과 퍼셉트론의 차이

-다층 신경망의 학습은 퍼셉트론과 유사한데, 입력패턴에 대한 훈련 집합을 신경망에 제시하면 신경망은 출력 패턴과 목표 출력 간의 오차가 줄어들도록 가중치를 조정해간다.

-퍼셉트론은 입력 하나당 가중치와 출력이 각각 하나뿐이지만 다층 신경망에서는 가중치가 여럿이며 각각의 가중치는 두 개 이상의 출력에 영향을 미친다.

'지능제어' 카테고리의 다른 글

확률가우시안  (0) 2014.10.27
역전파 알고리즘(BackPropagation)  (0) 2014.10.27
다층신경망[개념]  (0) 2014.10.26
퍼셉트론[개념]  (0) 2014.10.26
LMS(Linear Mean Square) Algorithm  (0) 2014.10.26
신경회로망 간단개요  (0) 2014.10.26

+ Recent posts