🤖 Education/2021석사과정

[딥러닝기초] 1주차 : 인공지능과 기계학습

데이터분석가SIENNA 2023. 6. 30. 01:10

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만개 모음