일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- python3
- graph
- leetcode
- dfs
- 광연자동차운전면허학원
- Hashtable
- LinkedList
- hash table
- greedy
- heap
- Easy
- Medium
- VCS
- Bellman-Ford
- 자료구조
- array
- sorting
- A* Algorithm
- stack
- Two Pointers
- Union Find
- Java
- SinglyLinkedList
- 구현
- ArrayList vs LinkedList
- DailyLeetCoding
- String
- BFS
- hash
- Leedcode
- Today
- Total
Min IT's Devlog
[AI] 모두를 위한 딥러닝 강좌 Lec/Lab 2 필기 본문
위의 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 |
---|