Min IT's Devlog

[AI] 모두를 위한 딥러닝 강좌 Lec/Lab 2 필기 본문

AI/인강

[AI] 모두를 위한 딥러닝 강좌 Lec/Lab 2 필기

egovici 2023. 4. 7. 09:34

https://www.youtube.com/watch?v=mQGwjrStQgg&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=5&ab_channel=SungKim 

위의 Sung Kim 교수님의 Basic Machine/Deep Learning 강의를 듣고 정리했고 추가적으로 알고 있는 내용에 대해 덧붙인 글입니다.

 

ML Lec 02

 

Predicting exam score

=> 공부한 시간(x)과 실제 성적(Y)이 담긴 데이터를 학습시켜서 공부한 시간에 대한 test_data를 제공했을 때 예상되는 성적을 리턴하는 것이 목표.

 

=> 예를 들어 면적이 넓을 수록 집이 비싸다는 사실처럼 생활 속에 Linear한 경우를 찾기 쉽다.

 

Linear Regression

1. Linear Regression을 위해 H(x) = Wx+b라는 기본식을 사용한다.

=> 여기서 H(x)는 가설 식을 의미하며 모델은 학습된 지식(w)을 기반으로 data를 제공했을 때 예상되는 값을 비슷하게 제시해야한다.

 

2. Which Hypothesis is better?

=> 데이터를 가지고 여러가지 가설을 세울 수 있는데 어떤 것이 더 좋은가에 대한 의문을 가질 수 있다.

=> 이는 간단하게 생각해본다면 실제 데이터와 가설식에 의한 예측값의 차이를 줄이는 것이 필요하다고 생각할 수 있다.

 

3. Loss Function

=> 어떤 것을 기준으로 error를 계산할 것인지.(즉 어떤 값을 줄이고 싶은지..)

=> (H(x)-y)^2을 사용한다.

=> 오차가 +,- 모두 가능한데 이를 방지하면서오차가 클 때 모델을 수정하는데 더 크게 반영할 수 있기 때문에 제곱을 사용

=> 이러한 제곱들의 합을 평균을 내는 식을 loss function으로 사용한다. (keras에서는 mse라고 표시한다.)

 

=> 결과적으로 학습의 목표는 loss function을 mse로 사용한다는 가정하에

(실제 데이터 - 예측치)^2들의 합의 평균을 구했을 때 나오는 loss를 최소화하는 W,b를 구하는 것이 학습의 목표이다.


ML Lab 02

import tensorflow as tf;
import numpy as np;

x_train = [1,2,3]
y_train = [1,2,3]

W = tf.Variable(tf.random.normal([1]), name='weight')
b = tf.Variable(tf.random.normal([1]), name="bias")

tf.model = tf.keras.Sequential()   # keras의 Sequential모델을 사용
tf.model.add(tf.keras.layers.Dense(units=1, input_dim=1))  # layer는 FCN으로 가져갈 것이며 해당 layer의 unit은 1개

sgd = tf.keras.optimizers.SGD(learning_rate=0.1)  # optimizer로는 SGD(Standard Gradient Descent 사용하며 학습에 따른 모델 반영율을 0.1로 준다.)
tf.model.compile(loss='mse', optimizer=sgd)  # loss function은 오차의 제곱인 mse를 사용

tf.model.summary()

tf.model.fit(x_train, y_train, epochs=200)  # 같은 데이터를 200번 반복해서 학습

y_predict = tf.model.predict(np.array([5, 4])) # 새로운 데이터에 대한 예측을 시킴
print(y_predict)

'AI > 인강' 카테고리의 다른 글

[AI] 모두를 위한 딥러닝 강좌 Lec/Lab 1 필기  (0) 2023.04.06
Comments