[딥러닝기초] 1주차 : 인공지능과 기계학습
1주차 : 인공지능과 기계학습
인공지능 : 가장 큰 개념. 사람의 지적노동을 대체?
머신러닝(기계학습) : 컴퓨터를 훈련시켜 원하는 일을 하도록 시킴
딥러닝 : 학습 시키는 방법 중 하나. 머신러닝의 일부분
머신러닝의 분야
1) 지식표현 : 사람의 머릿속에 지식을 어떻게 표현할 것인가? 그래프 ?
2) 추론 : 가르치지 않았는데 있는 사실로부터 새로운 사실을 만들어내는 것
-예) 모든 사람은 먹는다. 철수는 사람이다. 라는 두 문장으로부터 “철수는 먹는다”를 도출해 내는 것
* 우리가 배울 딥 러닝은 어디에 속하는 지 구글링으로 도식 찾아보기
*AI 관련 학술대회 중 가장 유명한 :
https://aaai.org/Library/AAAI/aaai21contents.php
- 머신러닝 세션이 많기는 하지만 머신러닝, 딥러닝이 AI의 전부는 아니다.
컴퓨터에게 쉬운 것과 어려운 것
1) 쉬운것 → 계산 : 명확하게 정의된 일, 알고리즘에 대한 수행
2) 어려운 것 → 인식 : 사람이 진화과정에서 자연스럽게 터득한 것들이 컴퓨터에게는 어렵다.
과거의 기계학습 → 규칙기반 학습(Rule-based), 2000년대 전
규칙 : 이미지에 ~한 특징이 있다면 △△다!
부작용 :
기계학습(Machine Learning)
Machine learning is the subfield of computer science that
"gives computers the ability to learn without being explicitly programmed“
기계 학습은 "컴퓨터에 명시적으로 프로그래밍하지 않고 학습 할 수 있는 능력을 부여하는”
컴퓨터 과학의 하위 분야.
-기계학습에서는 학습데이터가 많아야 함. 기계가 직접 rule을 만듦
• □와 △에 들어갈 정수는?
3 x □ + 2 x △ = 1
1 x □ + 4 x △ = -3
5 x □ + 5 x △ = 0
8 x □ + 3 x △ = 5
• □ = 1, △ = -1
- (3, 2), (1, 4), (5, 5), (8, 3) 은 input data, 1, -3, 0, 5 는 label이다.
- □와 △를 weight라고 하며 이 weight 값을 기계가 스스로 학습을 통해 찾아내도록 하는 것이 기계학습이 하는 일이다.
- 이 문제를 풀기위한 수식을 만드는 것이 아니라, 어떤 입력이 들어갔을 때 이런 출력이 나오도록 하는 함수를 만들어라! 하는 것
- 학습데이터가 조금이면 오버피팅 됨.
기계학습의 종류
• Supervised Learning(지도학습) : 정답이 존재.
-Input 과 labels을 이용한 학습
-분류(classification), 회귀(regression)
• Unsupervised Learning(비지도학습) : 데이터만 주고, 공통적인 특성만 가지고 해봐라!
-Input만을 이용한 학습
-군집화(clustering) : input이 들어왔을 때, 얘가 어떤 군집에 속하는가?
압축(compression) : 차원을 축소하는 것
• Reinforcement Learning(강화학습)
-Label 대신 reward가 주어짐 : 잘못했을 때는 패널티를 줌
-Action selection, policy learning
아파트 가격 예측(Regression) : 회귀
- 일반적인 방법 : 평수x2 + 층수x0.3…..
→ 프로그래머가 rule을 가지고 만든 것(rule based)
- 기계학습을 이용하는 방법
맨 처음 □,△,○,☆ 값을 random으로 정한 후 실제 가격과 비교하여 그 (차이값)2의 평균 계산한다.
이제 □,△,○,☆를 기계 스스로 조금씩 조정하여 (차이값)2의 평균이 0이 되게 할 수 있다면, 프로그램이 완성된다.
똑같은 학습데이터로 문제를 어떻게 풀 것인가?
→ 둘 다 딥러닝으로 잘 풀 수 있다^^
→ 우리가 원하는 정답이 어떤 실수값이냐?(value냐?) or 어떤 것중의 하나냐?에 따라
회귀냐 분류냐로 나뉨
Supervised Learning : Regression vs. Classification
1) Regression :
we try to predict a continuous number y based on input data X = x1,x2,x3.. xN
추울까? 더울까? 값을 예측하는 것. 학습데이터로부터 어떠한 값이 나오는 것. (예: 0~100사이의 어떤 값)
2) Classification :
we try to predict the class or label based on input data X =x1,x2,x3.. xN
찍기. 10개 중에 하나 선택. 딥러닝에서의 Classification의 출력은 미리 정의된 클래스 중에서 어디에 속하는 지 골라내게 하는 것.
data set : IMAGENET
- 우리 세상에 있는 1000개의 객체에 대한 샘플이미지를 100장, 1000장 모아놓음
- 누가누가 잘 분류하나~ 콘테스트를 매년 열었던 거쥐
- 딥러닝으로 분류하니 10% 이상 더 잘 분류하더라.
- 사람이 분류해도 95% 인데, 딥러닝으로 하면 그 이상 잘 분류한다.
Unsupervised Learning : 정답(label)이 없는 data
1) Clustering : 그룹핑
2) Association : 데이터들 사이에서 연관관계를 파악 하는 것
- 빵과 우유를 함께 사는 사람은 치즈를 사더라! → 추천 시스템에 사용됨
3) Dimensionality Reduction
Dimensionality reduction is simply the process of reducing the dimension of your feature set.
- 차원축소는 단순히 피쳐 셋의 차원을 줄이는 프로세스이다.
- 3차원 데이터를 2차원으로 잘 reduction 시키는 알고리즘을 만드는 것
- 차원이라는 것은 attribute(속성)이다. 속성이 너무 많으면 학습 시키기도 힘들고 오버피팅될 수도 있기 때문에 학습 전에 데이터의 dimension을 reduction시켜서 simple한 데이터로 만든 후, 가장 중요한 attribute가 뭔지 파악하여 그 속성만 가지고 학습시킬 수 있도록 하는 것이다.
예 : 사람들이 있을 때 학번, 이름, 성별이라는 특징이 있으면, 이 때 그들의 성별이 모두 남자라면, 이 데이터는 필요없기 때문에(의미가 없음) 3차원을 2차원으로 바꾸어도 된다.
Why ?
- Curse of Dimensionality(차원의 저주)
: 차원이 높아질 수록 필요한 학습데이터가 기하급수적으로 늘어난다. 그만큼의 데이터가 없으면 학습이 제대로 되지 않는다.
- Overfitting
Reinforcement Learning : 강화학습
- 목적이 똑똑한 agent를 만드는 것이다.
- que learning이라는 용어도 사용한다.
- 어떤 결정을 했을 때, 상을 줄지 벌을 줄지는 이미 학습데이터로부터 학습되었다.
- 우리의 목적은 policy를 똑똑하게 만드는 것
- 예 : 바둑에서 흰돌, 검은돌이 어디 놓이느냐가 하나의 state가 됨.
흰 돌을 어딘가에 놓았을 때 전체 게임에서 이길 경우, 흰돌을 그렇게 놓았던 것이 좋았는지 or 나빴는지 판단한다. 그 기보(학습데이터)가 몇 백 만 개가 있는데, 그것으로 policy를 똑똑해지도록 계속 업데이트 해나가는 것
- 예 : Atari 2600 Games - 게임에서 죽은 케이스를 100만개 모음