AI(인공지능) : 학습, 문제 해결, 패턴 인식 등을 인지 문제를 해결하는 융합된 공학분야
1943년에 처음 나옴.
Deep Mind : 12명 인공지능 전문가로 구성된 회사를 2014년 1월 구글에서 인수
* 심볼릭 AI(rule based AI) -1950년 ~ 1980년
- 프로그래머에 의해 명시적인 규칙만으로 문제를 해결 하는 접근 방식
- 잘 정의된 논리적인 문제 해결에 적합
(규칙, 데이터)-> 심볼릭AI -> 정답
- 한계 : 문제 더 복잡하고 불분명, 무한대의 규칙 등
쟁점 :컴퓨터가 스스로 처리 가능? 컴퓨터 스스로 데이터를 보고 규칙을 학습가능한가?
* 머신러닝(Machine Learning) : 수많은 데이터로부터 기계가 배운다.(1959)
컴퓨터가 명시적인 프로그램이나 규칙 없이도, 스스로 학습 할 수 있도록 하는 연구 분야
* 딥러닝
- 인공신경망(1943) : 생물의 뇌를 그대로 모델링 할 수 있다는 아이디어 시작
복잡한 스위치들이 연결된 네트워크로 표현할 수 있다고 제한
- 인공지능용어(1956) : 지능이 있는 기계를 만들기 위한 과학과 공학
- 퍼셉트론(1957) : 노의 기본 단위인 뉴런을 모방
입력신호에 따라 0,1값을 출력
선형분류기(y=ax+b)
- 사람의 뇌 : 뉴런들의 다층 연결
인공신경망 : 퍼셉트론의 다층 연결
- 딥러닝 : 인공ㅇ신경망을 많은 층으로 깊게 쌓은 모델이 DNN(Deep nural networking)
* 퍼셉트론과 선형분류 문제
- 퍼셉트론 수학식 : 일종의 y=ax+b수식으로 모델링 된 선형 분류기
- 선형분류 데이터를 가장 잘 설명할 수 있는 선을 찾는 방법 y=wx+b(가중치: Weight, 편향:bias)
* 퍼셉트론과 선형분류 문제
퍼셉트론으로 AND 및 OR 논리연산 구현 가능 y=ax+b
퍼셉트론으로 XOR논리연산 구현가능한가? - 퍼셉트론 1개로는 불가능
* 딥러닝 빙하기 (1969) - 단층 퍼셉트론으로 XOR문제 해결안되는 불가능을 증명하게 됨.
다층 퍼셉트론으로 해결 가능할까? = 수많은 가중치값과 편향값을 찾을 수 있는 적절한 방법이 없었음
* 오차역전파 법(backpropagation) : 단층 및 다층 퍼셉트론의 단점(최적의 weight와 bias)을 해결함.
- 1974년 역전파법 고안했으나 관심 받지 못함
- 1986년 Geoffrey hinton 교수가 다층 퍼셉트론의 학습에 적용, 다층 퍼셉트론을 이용해 XOR문제를 학습할 수 있음을 보임
* 단점 : 시간 및 비용 많이 듬, 초기값 근거가 없었고
네트워크의 깊이가 깊어 질 수로 학습이 잘 되지 않음 (vanishing gradient)
* 딥러닝 두번째 빙하기
- 기술 수준에 대한 사람들의 높은 기대치
- 학습데이터 양의 부족 (인공신경망은 학습 데이터의 양이 성능을 좌우)
- 하둡, 빅데이터 등 빅데이터 처리하기 위한 오픈소스기술 부족
- 인공신경망의 학습을 위해 많은 연산 필요, 그러나 옛날에는 컴퓨팅 성능이 낮았음.
*딥러닝 부활(2010)
- 데이터가 폭발적으로 늘어남
- GPU등 컴퓨팅 파워의 고속화
- 딥러닝 알고리즘 발전
- vanishing gradient 문제의 해결책 발견(relu, batch)
- 경사하강법 등 최적화 알고리즘 발견
* 딥러닝 핵심개념
- 인공신경망, 인공신경망 내 데이터 흐름, 깊은층(deep layer), 비선형성(non-linearity), 최적화(optimization), 딥러닝 모델의 공간적 의미
* 인공신경망 flow : 문제->모델 구성->모델 학습->문제해결
* 인공신경망 (Neural Network)
- 퍼셉트론 : 인공신경망을 이루는 가장 중요한 기본 단위
입력값을 받아서 활성화 함수를 사용해 출력값을ㄹ다음으로 전달함
예를들면, 출근시간과 거리(입력값x)가 weight가 가장 강하게 형성될 것
전처리 : NaN등 결측치 빠져 있는값을 제외함. outlyer 는 뺴야함 따로 나와 있는것
이미지 경우, 밝기 사이즈 등 이미지를 데이터 가공쉽게 미리 처리하는 과정
음성 데이터는 볼륨 맞춘다는가? 파일의 길이도 동일하게 맞춤
자연어는 오타 체크, 문법체크 등 처리
*데이터 ->feature engineering -> 머신러닝 알고리즘->결과
데이터 -> 딥러닝 알고리즘->결과
* feature engineering (엄청난 시간이 소요) -> 그래서 딥러닝 알고리즘 사용
- 사진을 흑백으로 바꾸고 픽셀을 계속 축약
- 트랜드예측 데이터에 영향주는 것들만 골라서 인풋에 넣음 ( 구매이력, 집위치, 후기등) 몇가지만 인풋을 넣음.
*뉴런(perceptron)
- 가중치w : 입력신호가 결과에 주는 영향력(중요도)르 조절하느 변수
- 편향b ㅣ: 퍼셉트론이 얼마나 쉽게 활성화 하느냐를 조정하는 변수
- 활성화 함수f(x) : 입력 신호의 총합을 확인해 출력 신호를 결정하는 함수
* 단일 뉴런을 여러층으로 쌓아서 만든 모델
*step 활성화 함수
퍼셉트론 초청가 알고리즘 step 함수 형태
x값이 0보다크면 1dkslaus 0을출력
* sigmoid 함수
0과1사이 값을 s자 형태 그래프
회귀를 사용하여 데이터가 어떤범주에 속할 확률을 0에서1사이 값을 예측
0/1, 합격/불합격 이중 분류문제에 적합
* relu함수(가장많이 사용하는 활성화 함수)
rectfied linear unit 약자
기존의 linear함수인 sigmoid 를 개선함
* 분류 분석
- 활성화 함수로 소프트맥스 함수 사용
- 분류하고자 하는 카테로리 개수 만큼 output layer에 퍼셉트론 배치
* 현업에서 분류가 많아지면 성능에 문제가 있어 softmax 사용안하고 출력값중 가장 큰값을 사용하기도 함.
* 이진분류(예: 찬성/반대, 0/1) - output에서 sigmoid 사용
딥러닝 특징
* Deep layer(깊은층)
- 층을 깊게 할 수록 더 복잡한 문제에 대해서 대응 가능
- 이전층에서 학습한 특징을 조합하여 더 높은 차원의 문제에 대응
* 비선형성(non-linearity)
- 선형함수(y-ax+b)는 여러번 연산해도 선형성 갖음
- 비선형성을 추가하면 여러번 연산 시 더 복잡한 문제를 해결
- activation 함수가 비선형성을 준다.
활성함수의 결과에 활성함수를 이용하여 비선형성을 혹보
활성함수 : step function, sigmoid, relu, than 등
최적화
*효율적인 학습위해 필요한것?
- 손실함수 : 딥러닝 모델 학습 시 학습 지표가 되는 함수
모델의 추론 결과와 실제 정답간의 차이를 의미하는 함수
목적함수, 비용함수라고도 부름
미분을 이용한 기울기의 계산
미분을 이용하여 복잡한 연산에 대한 기울기를 계산할 수 있음
경사하강법
기울기 사용하여 가중치, 편향 값을 업데이트하는 최적화 알고리즘
오차역천파을 통해 게산한 미분값을이용
기울기를 방향 삼아 0으로 줄어는 loss의 최소값 w를 찾음
backpropagation으로 최적화 : k번째 오차역전파 오차율을 0에 가까울때까지 계속 학습함. w,b를 계속 업데이트함.
'인공지능(AI)' 카테고리의 다른 글
강화학습, GAN (0) | 2020.11.03 |
---|---|
RNN(Recurrent Neural network), LSTM (0) | 2020.11.03 |
classifier model- 앙상블 (0) | 2020.11.03 |
Supervised - Softmax Regression (0) | 2020.10.21 |
epochs, batch size, iteration (0) | 2020.10.20 |