사람의 뉴런
- 두뇌의 가장 작은 정보처리 단위
- 구조
- 세포체는 간단한 연산
- 수상돌기는 신호 수신
- 축삭은 처리 결과 전송
- 사람은 10^11개 정도 뉴런을 가지며, 각 뉴런은 약 1000개 다른 뉴런과 연결돼 10^14개 연결을 갖는다.
컴퓨터가 사람 뇌의 정보처리를 모방해 지능적 행위를 할 수 있는 인공지능 도전
-> 뉴런의 동작 이해를 모방한 초기 인공 신경망(artificial neural network, ANN) 연구 시작
-> 퍼셉트론 고안
사람 신경망 | 인공 신경망 |
세포체 | 노드 |
수상돌기 | 입력 |
축삭 | 출력 |
시냅스 | 가중치 |
신경망의 종류
인공신경망은 다양한 모델이 존재
- 전방(forward) 신경망과 순환(recurrent) 신경망
- 얕은(shallow) 신경망과 깊은(deep) 신경망
결정론(deterministic) 신경망과 확률론적(stochastic) 신경망 비교
- 결정론 신경망
- 모델의 매개변수와 조건에 의해 출력이 완전히 결정되는 신경망
- 확률론적 신경망
- 고유의 임의성을 갖고 매개변수와 조건이 같더라도 다른 출력을 가지는 신경망
퍼셉트론
- 구조 : 절(node), 가중치(weight), 층(layer)과 같은 새로운 개념의 구조 도입
- 제시된 퍼셉트론 구조의 학습 알고리즘 제안
- 원시적 신경망이나, 깊은 인공신경망을 포함한 현대 인공신경망의 토대
- 깊은 인공신경망은 퍼셉트론의 병렬 배치를 순차적으로 구조로 결합함
- 현대 인공신경망의 중요 구성 요소가 된다.
퍼셉트론의 구조
- 입력
- i번째 노드는 특징 벡터의 요소 x=(x_1,x_2,...,x_d)^T의 요소 x_i를 담당
- 항상 1이 입력되는 편향(bias) 노드 포함
- 입력과 출력 사이 연산하는 구조를 가진다.
- i번째 입력 노드와 출력 노드를 연결하는 변(edge)는 가중치 w_i를 갖는다.
- 퍼셉트론은 단일 층 구조라 간주.
- 출력
- 한 개의 노드에 의해 수치(+1 혹은 -1) 출력 -> 활성 함수를 step function을 사용할 때
퍼셉트론의 동작
- 선형 연산 -> 비선형 연산
- 선형 : 입력(특징)값과 가중치를 곱하고 모두 더해 s를 구함
- 비선형 : 활성 함수 τ 적용
- 활성함수로 계단함수를 사용하면 출력이 +1 또는 -1 출력
- 수식
- y= τ(s)
- 이 때 s = sigma^d_(i=1)w_ix_i, τ(s)={1 (s≥0), -1 (s<0)}
- 퍼셉트론의 동작을 식으로 작성하면 다음과 같다.
- y = τ(w^Tx) (x는 엄밀히 따지면 d+1일 것이다. 여기서 +1은 편향 값.
퍼셉트론의 학습
- 분류기 학습 과정
- 과업 정의와 분류 과정의 수학적 정의 (가설 설정)
- 해당 분류기의 목적함수 J(Θ) 정의
- J(Θ)를 최소화하는 Θ를찾기 위한 최적화 방법 수행
- 목적함수 정의 (1단계 + 2단계)
- 퍼셉트론의 매개변수를 w = (w_0, w_1, ..., w_d)^T라 표기하면, 매개변수 집합은 Θ={w} 표기
- 목적함수를 J(Θ) 또는 J(w)로 표기
- 퍼셉트론 목적함수 상세 조건
- J(w)≥0이다.
- w가 최적 즉, 모든 샘플을 맞히면 J(w)=0이다.
- 틀리는 샘플이 많은 w일수록 J(w)는 큰 값을 갖는다.
- 목적함수 상세 설계
- Y는 w가 틀리는 샘플의 집합
- 위 식은 세 가지 조건을 만족하므로 퍼셉트론 목적함수로 적합
- 임의의 샘플 x_k가 Y에 속하면(오분류됐을 때) 퍼셉트론의 예측 값 w^Tx_k와 실제 값 y_k는 부호가 다르다 -> -y_k(w^Tx_k)는 항상 양수를 가짐 : 만족 (조건 1 만족)
- Y가 공집합일 때 (퍼셉트론이 모든 샘플을 맞출 때) , J(w)=0 : 만족 (조건 2 만족)
- Y가 클수록 (틀린 샘플이 많을수록) J(w)는 큰 값을 가짐 : 만족 (조건 3 만족)
- 경사하강법gradient descent
- 최소 J(Θ) 기울기를 이용해 반복 탐색하여 극값을 찾는다.
- 경사도 계산
- 일반화된 가중치 갱신 규칙 Θ=Θ-ρg를 적용하려면 경사도 g가 필요
- J(w)를 편미분하면
- 델타 규칙 (퍼셉트론 학습 방법)
- 퍼셉트론 학습 알고리즘 (확률론적stochastic 형태)
- 난수를 생성하여 초기해 w 설정
- repeat
- Χ의 샘플 순서를 섞는다.
- quit = ture
- for j = 1 to n
- y = τ(w^Tx_j)
- if(y≠y_j)
- quit = false
- for i = 0 to d
- w_i = w_i + ρy_jx_ji
- until(quit)
- what = w
- 퍼셉트론 학습 알고리즘 (무리batch 형태)
- 난수를 생성해 초기해 w 설정
- repeat
- Y = 0 // 틀린 샘플 집합
- for j = 1 to n
- y = τ(w^Tx_j)
- if(y≠y_j) Y = Y∪x_j
- if(Y≠0)
- for i=0 to d
- w_i = w_i + ρ(sigma(y_kx_ki)_x_k)
- until (Y=0)
- what = w
'AI > KDT 인공지능' 카테고리의 다른 글
[06/23] 다층 퍼셉트론 (0) | 2021.06.23 |
---|---|
[06/22] 라이브 세션 (0) | 2021.06.22 |
[06/16] 인공지능과 기계학습 (0) | 2021.06.16 |
[06/15] 분류문제 실습 (0) | 2021.06.15 |
오토인코더, t-SNE (0) | 2021.06.14 |