njs03332 / ml_study

3 stars 0 forks source link

2024/04/04 ~ 2024/04/08 #82

Open danbi5228 opened 6 months ago

danbi5228 commented 6 months ago

2024.04.08 pm 10:30

1 - ~17.2 2 - 17.3 ~ 17.3.1 3 - 17.3.2 ~ 17.3.3

image

givitallugot commented 6 months ago

17.2 과소완전 선형 오토인코더로 PCA 수행하기

오토인코더가 선형 활성화 함수만 사용하고 비용 함수가 평균제곱오차MSE라면, 이는 결국 주성분 분석(PCA)를 수행하는 것으로 볼 수 있음

autoencoder.compile(loss="mse", optimizer=keras.optimizers.SGD(learning_rate=0.1))

history = autoencoder.fit(X_train, X_train, epochs=20) codings = encoder.predict(X_train)


- 오토인코더를 인코더, 디코더 두 개 컴포넌트로 구성. 둘 다 하나의 dense 층을 가진 일반적인 sequential 모델
- 오토인코더의 출력 개수가 입력 개수와 동일 (=3)
- 단순 PCA를 위해서 활성화 함수를 사용하지 않고, 비용함수는 MSE
- 다음처럼 분산이 최대한 많이 보존되도록 데이터를 투영할 최상의 2D 평면을 찾음.
![image](https://github.com/njs03332/ml_study/assets/50584633/0412624f-c278-47da-bdb7-31cd3c6a451d)
danbi5228 commented 6 months ago

17.3.2 재구성 시각화

17.3.3 패션 MNIST 데이터 시각화

X_valid_compressed = stacked_encoder.predict(X_valid) tsne = TSNE() X_valid_2D = tsne.fit_transform(X_valid_compressed)

plt.scatter(X_valid_2D[:, 0], X_valid_2d[:, 1], c=y_valid, s=10, cmap="tab10")


![image](https://github.com/njs03332/ml_study/assets/26505830/81530044-9a1c-42e6-aab8-06ffd2c6614b)
njs03332 commented 6 months ago

17.3 적층 오토인코더

17.3.1 케라스를 사용하여 적층 오토인코더 구현하기