반응형
선형 회귀 가중치 w와 비용함수 관계 시각화코드
import tensorflow as tf
import matplotlib.pyplot as plt
# 데이터 정의
X = tf.constant([1, 2, 3], dtype=tf.float32)
Y = tf.constant([1, 2, 3], dtype=tf.float32)
# 학습할 변수 정의
W = tf.Variable(initial_value=0.0, dtype=tf.float32)
# W의 값과 코스트를 저장할 리스트
W_val = []
cost_val = []
# W의 값을 변화시키면서 비용(cost) 계산
for i in range(-30, 50):
# W 값을 업데이트
W.assign(i * 0.1)
# 가설 계산
hypothesis = X * W
# 비용 함수 계산 (MSE)
cost = tf.reduce_mean(tf.square(hypothesis - Y))
# 값을 리스트에 저장
W_val.append(W.numpy())
cost_val.append(cost.numpy())
# 결과 시각화
plt.plot(W_val, cost_val)
plt.xlabel("W")
plt.ylabel("Cost")
plt.show()
X와 Y는 입력 데이터와 목표 값 데이터를 정의합니다. 여기서 X와 Y는 모두 [1,2,3]으로 설정됩니다. tf.constant를 사용해 상수 텐서를 생성하며, dtype=tf.float32는 데이터 타입을 32비트 부동 소수점으로 지정합니다.
W는 모델이 학습할 가중치를 나타냅니다. tf.Variable은 텐서플로우에서 변경 가능한 변수로, 여기서는 초기값을 0.0으로 나타냅니다.
그림을 보면 알겠지만 값을 최적화하는 값은 w가 1일 때입니다.
반응형
'IT 프로그래밍 > AI' 카테고리의 다른 글
Bokeh를 이용한 대화형 웹 시각화 (4) | 2024.09.08 |
---|---|
seaborn의 Jointplot 코드 사용 (0) | 2024.09.08 |
Hypothesis and Cost (0) | 2024.09.03 |
머신러닝의 이해 (0) | 2024.09.03 |
머신러닝의 정의와 유형 (1) | 2024.09.02 |