패턴인식 개론 Ch.13 신경세포 모델링-인공신경망.

Slides:



Advertisements
Similar presentations
제철고 프로그래밍언어 2015 가을학기 연습 #1 Python 연산식 이다훈 POSTECH 컴퓨터공학과 2015 년 9 월 23 일.
Advertisements

출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
컴퓨터와 인터넷.
Lec 4 Backpropagation & Neural Network
Chapter 5. Q-LEARNING & DEEP SARSA
제 9 장 구조체와 공용체.
수치해석 6장 예제문제 환경공학과 천대길.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
Open Graphics Library 팀 명 : Spes 송정웅 김정환
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Chapter 02 순환 (Recursion).
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
컴퓨터과학 전공탐색 배상원.
MlVirus 행위[패턴] 기반 악성코드 분석 KIS KIS 양효영 강성묵.
AI 인공신경회로망(ANN)의 개요 신경회로망(Neural Networks) 연결주의 (Connectionism)
Simulating Boolean Circuits on a DNA Computer
CAS (Computer Algebra System) 소개
보고서 #5(제출기한: 10/14) 다음 문제를 해결하시오.
602 LAB FDTD 를 이용한 Acoustic Simulation 지도: 이형원 교수님 차진형.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
뇌를 자극하는 Windows Server 장. 장애 조치 클러스터.
신경망 1.
제4장 제어 시스템의 성능.
Deep Learning.
JA A V W. 03.
자바 5.0 프로그래밍.
프로그래밍 개요
인터넷응용프로그래밍 JavaScript(Intro).
군집 분석.
문자 인식 개요 NR-LAB 강 동 구.
논리회로 및 실험 조합논리회로 (1) - Adder
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
USN(Ubiquitous Sensor Network)
논리회로 설계 및 실험 5주차.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
신경계의 구성(2) 몸속 네트워크 신경계의 구성 중추 신경계의 구성 말초 신경계의 구성.
인공신경회로망(Artificial Neural Networks; ANN)
P 등속 직선 운동 생각열기 – 자동차를 타고 고속도로를 달릴 때, 속력계 바늘이 일정한 눈금을 가리키며 움직이지 않을 때가 있다. 이 때 자동차의 속력은 어떠할까? ( 속력이 일정하다 .)
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
강의 소개 컴퓨터시뮬레이션학과 2017년 봄학기 담당교수 : 이형원 E304호,
Ch13_ 신경 세포 모델링 : 인공 신경망.
CAS (Computer Algebra System) 소개
수학10-나 1학년 2학기 Ⅱ.부등식의 영역 2. 연립부등식의 영역 (3/5) 부등식 영역 수업계획 수업활동.
알고리즘 알고리즘이란 무엇인가?.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
제 5장 제어 시스템의 성능 피드백 제어 시스템 과도 성능 (Transient Performance)
Word2Vec.
Support Vector Machine
3. 반/전 가산기, 반/전 감산기 제작 컴퓨터 구조 실습 안내서.
개요 신경회로망(Neural Networks)
논리회로 설계 및 실험 4주차.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
상관계수.
Numerical Analysis Programming using NRs
Week 4: 다변수(2변수) 데이터분석 5장_1(산포도: scatter plot) 동영상 1,2,3,4,5
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
1. 강의 소개 컴퓨팅적 사고와 문제해결.
Chapter 7. A3C Ho-Bin Choi A3C.
신경망 (Neural Networks) (Lecture Note #22)
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
개요 신경회로망(Neural Networks)
Ch12. Deep Learning (Backpropagation)
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
6 객체.
Presentation transcript:

패턴인식 개론 Ch.13 신경세포 모델링-인공신경망

신경망의 발상과 전개 두 줄기 연구의 시너지 컴퓨터 과학 : 계산 능력의 획기적 발전으로 지능 처리에 대한 욕구 의학 : 두뇌의 정보처리 방식 연구  얼마간의 성과 (뉴런의 동작 이해 등) 뇌의 정보처리 모방하여 인간에 필적하는 지능 컴퓨터에 도전 인공 신경망 (ANN; Artificial Neural Network)이 대표적 신경망 특성 학습 가능 뛰어난 일반화 능력 병렬 처리 가능 현실적 문제에서 우수한 성능 다양한 문제 해결 도구 (분류, 예측, 함수 근사화, 합성, 평가, …)

생물학적 신경세포(뉴런) 수상돌기 (Dendrite) : 인접 뉴런으로부터 신경흥분이 세포체로 입력되는 통로 (Input). (output) (input) 수상돌기 (Dendrite) : 인접 뉴런으로부터 신경흥분이 세포체로 입력되는 통로 (Input). 축색돌기 (Axon) : 가늘고 긴 신경섬유로 신경흥분을 전달하는 역할 (Output). 세포체 (Cell body) : 일정시간 동안 입력된 자극을 세포체 내에서 가중되고 그 값이 임계치 이상이 되면 뉴런이 활성화 하여 축색돌기로 자극이 전달됨.

논리 유닛(Logistic Unit) X0 = 1 “Bias unit” 생물학젹 신경세포를 모델링한 뉴런이라는 매우 단순한 기능을 하는 유닛 (각 유닛과 가중치 모두 변수화). 유닛을 상호 연결하여 네트워크를 구성할 경우 간단한 논리 연산이 가능. w0 X1 w1 활성화함수 입력함수 X2 w2 inj g() a j     wn Xn “Output layer” “Input layer” 입력값: 수치적으로 설정 입력 받는 과정: 입력값을 변수에 저장 가중치(뉴런간의 연결 세기) : 2차원 배열로 처리 (wji 여기에서 i = 입력 유닛번호, j = 출력 유닛번호) 바이어스: 신경세포가 가지는 일종의 편견을 바이어스로 구현 (바이어스는 1, 가중치 변경으로 구현) 세포체의 기능: 연산자를 통해 구현 활성화: 활성화 함수 구현(시그모이드 함수) Sigmoid Function :

ai(j) = “activation” of unit I in layer j X0 =1 ai(j) = “activation” of unit I in layer j a0(2) W(j) = matrix of weights controlling function mapping from layer j to layer j +1 X1 a1(2) X2 a2(2) a1(3) y = h(x) X3 a3(2) Layer 1 (Input layer) Layer 2 (Hidden Layer) Layer 3 (Output Layer)        

AND, OR, NOT 구현 : 바이어스 입력(x0)을 포함하여 입력이 3/2 개, 출력이 1개인 구조, g(-30+20x1+20x2) g(-30) ~ 0 1 g(-10) ~ 0 g(10) ~ 1 W0=-30 W1=20 AND X1 W2=20 X2 X0 = +1 X1 X2 g(-10+20x1+20x2) g(-10) ~ 0 1 g(10) ~ 1 g(30) ~ 1 W0=-10 W1=20 OR X1 W2=20 X2 X0 = +1 W0=10 X1 g(10-20x1) g(10) ~ 1 1 g(-10) ~ 0 NOT X1 W1=-20

AND, OR, NOT 게이트는 선형 분리 가능한 결정 경계를 가짐, 하지만 결정 경계가 2개 필요한 XOR 구현은 1개 층으로는 불가능 평면은 연결 가중치로 결정

■ XNOR 게이트 구현 : 2개 층 구조로 구현가능 W0=-30 W0=10 X0 = +1 W0=-10 W1=20 W1=-20 W1=20 X1 X1 X1 W2=20 W2=-20 W2=20 X2 X2 X2 X1 AND X2 (Not X1) AND (Not X2) X1 OR X2 +1 -10 -30 x1 x2 a1 a2 y 1 +1 a1 20 20 X1 20 y 10 20 -20 X2 a2 -20

층수와 결정 영역의 특성 X1 X2 h(x) X3 Layer 1 Layer 2 Layer 3 Layer 4

Neural Network Classification y = h(x) Layer 1 Layer 2 Layer 3 X1 X2  

역전파( BP: Back-Propagation ) 알고리즘 전체 학습 데이터에 대한 전체 오차를 최소화하는 방향으로 연결 강도를 갱신 입력 x에 대한 목표 출력이 y인 경우, 전체 오차는 어떻게 최소 오차점을 찾아 갈 것인가?  = error between target output and computed output 경사 강하법(gradient descent) ① 최소 오차점을 찾기 위해서는 오차함수식 E(W)를 W에 관하여 편미분한 결과가 기울기의 크기를 의미함으로, ② 그 값이 음의 값을 가지면 그 기울기만큼 ΔW를 이전 연결 강도에 더함. ③ 양의 값을 가지면 그 기울기만큼 ΔW를 빼주는 과정을 반복하면 최소점에 도달할 수 있을 것임. ④ 이러한 방식으로 최적값을 찾아가는 방법을 경사 강하법(gradient descent)이라고 함.

역전파( BP: Back-Propagation ) 알고리즘  Back-propagation (역전파) algorithm 을 통해서 계산 오차함수의 기울기에 해당하는 gradient를 구하는 방법을 모르다가, 룸멜하트(Rumelhart)와 힌톤(Hinton)에 의해서 1980년대 후반에 개발된 다층 퍼셉트론에 대한 효율적 학습 방법인 역전파 알고리즘을 통해서, 많은 문제에 성공적으로 응용될 수 있는 계기를 만들고 신경망 연구가 부활하는 계기를 마련하게 되었다. 역전파 알고리즘 학습은 전향(forward) 단계와 후향(backward) 단계로 이루어진다. 학습에서 중요한 것은 연결 강도의 갱신인데 역전파 알고리즘은 후향 단계에서 연결 강도의 갱신이 이루어진다. 전향 단계는 신경 회로망에 입력 패턴(x)을 제시하고, 각 노드에 대해서 입력 함수와 활성화 함수를 이용하여 출력을 산출하는 단계다. 이 때 입력 신호는 전방향, 즉 출력층 방향으로만 전달된다. 초기에 임의로 정한 연결 강도(W)로 인해 출력층에서 출력값과 목표값이 일치하지 않고 큰 오차가 발생하게 된다. 후향단계는 역전파 알고리즘으로 그 오차로부터 gradient를 구하고, 이를 이용한 적절한 연결강도의 갱신을 수행한다.

Gradient Computation Given one training example (x,y) : 전향파(Forward-propagation) X1 X2 X3 Layer 1 (x) Layer 2 Layer 3 y = h(x)

Gradient Computation Back-propagation (역전파) algorithm y = h(x) Layer 1 (x) Layer 2 Layer 3 y = h(x)

MATLAB Simulation 실습 : 역전파 알고리즘 시뮬레이션 BP 시뮬레이션 : 필기체 숫자 0, 1, 2, 3에 대한 4-클래스 분류 문제를 해결하기 위하여 입력층 20개, 은닉층 10개, 출력층 4개로 구성된 3층 네트워크를 구성하여 학습과 인식을 수행하는 시뮬레이션이다. 단계 1: 초기화 루틴인 inibp.m 스크립트를 이용하여 연결 가중치, 입력, 은닉, 출력 유닛의 수, 학습과 평가 패턴의 수와 학습률를 초기화 한다. 단계 2: plotDigitPats.m 스크립트를 실행해 학습/평가용 데이터를 확인한다. 숫자 이미지의 각 픽셀이 정방형으로 처리되어 있다. 숫자 부분의 픽셀은 밝은 색으로 처리돼있고 배경부분은 어두운 색으로 처리되어 있다. 패턴은 한 패턴당 한 열로 각각 10개씩 모두 40개의 벡터 행렬로 구성되어 있다. 각 패턴은 5x4 픽셀 필기체 그레이-스케일 숫자 이미지이다.

MATLAB Simulation 실습 : 역전파 알고리즘 시뮬레이션 단계 3: runbp.m 에서 hiddenDeltas.m 과 outputDeltas.m 을 통하여 각각 은닉층과 출력층에 대한 델타를 계산하고 학습을 행한다. 이 과정은 모두 MATLAB의 장점을 발휘하기 위하여 행렬과 벡터 형식으로 프로그래밍 되어 있다. 학습 데이터 전체를 200번 돌게 되는 200번의 epoch를 반복하여 수행하면서 오차가 최소화 되는 것을 그래프로 확인할 수 있다. 학습/평가용 데이터의 수에 따라 인식 성능은 어떻게 차이가 나는가? 그리고 학습률의 변화에 따라 인식 성능은 어떻게 차이가 나는가? 학습률을 0.5보다 작은 경우와 0.3에서 0.5 사이의 값을 설정하여 성능을 비교해보자.