본문 바로가기

전체 글55

[CNN] ResNet 요약 Problems of Deep CNN 일반적으로 네트워크가 깊고 넓을수록 성능이 더 나을 것이라는 사실이 널리 알려져 있었는데, 이에 반하는 결과들이 나타나기 시작했다. 더 Depp한 네트워크가 적어도 Train Set에서는(Overfitting이 발생하더라도) 더 나은 성능이 나타나야 하는데 트레이닝과 테스트 모두에서 더 낮은 성능을 기록한 것이다. 이는 네트워크가 깊어질수록 각 weight들을 최적화 하는것이 어렵고, Gradient Vanishing 문제가 발생할 수 있기 때문이다. ResNet은 이를 해결하고 더 깊은 레이어의 학습에도 성공했다. ResNet Residual 구조에서 추가된 Skip-Connection 이 주요한 역할을 함 Skip-connection 처음 제안되었던 Skip Co.. 2021. 8. 3.
[CNN] GoogLeNet 요약 Deep Learning CNN은 일반적으로 네트워크가 넓고 깊어질수록 성능이 좋아진다. 하지만 Overfitting, Gradient Vanishing, 연산량 등의 문제점이 발생할 수 있다. GoogLeNet GoogLeNet은 ILSVRC14에서 좋은 성적을 낸 CNN 모델. 그 전체적인 구조는 아래와 같다. 네트워크의 시작부분에서는 Inception module을 사용하지 않았는데, 논문에 따르면 해당 부분에서 Inception의 효과가 없었다고 한다. 이후로는 Inception module이 깊게 쌓여있으며, 크기를 줄어들게 하기 위한 MaxPool 레이어도 존재한다. 또한, Fully Connected layer와 Softmax Activation으로 이어지는 Classifier가 마지막 부분.. 2021. 8. 2.
Convolutional : Autoencoder / Neural Network 오토인코더에 대한 대략적인 설명은 지난 게시물에 있으므로 생략 Convolutional Model이 일반적으로 더 나은 성능을 보임 # 이미지 표시해줄 함수 선언 def show_imgs(up,down, size): plt.style.use('fivethirtyeight') plt.figure(figsize=(30,6)) plt.gray() n_img=10 for i in range(n_img): plt.subplot(2,n_img,i+1) plt.imshow(np.reshape(up[i], (size,size))) plt.axis('off') plt.subplot(2,n_img, n_img+i+1) plt.imshow(np.reshape(down[i], (size,size))) plt.axis('off.. 2021. 7. 29.
AutoEncoder 오토인코더 Unsupervised Learning중 하나로 주로 데이터의 특징을 발견하는 것이 목표인 학습 방법. 오토인코더는 Input Layer와 Output Layer의 노드 수가 동일한 구조. 인풋 값을 특정 N Factor로 압축 후 이를 다시 잘 복원하도록 학습시킴. 압축 된 부분을 차원축소된 feature로 활용할 수 있음. -> 이를 Classifier의 인풋으로 사용해 더 나은 성능을 기대할 수 있음. MNIST 데이터 로드 및 train/test split import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from sklearn.datasets import fetch_openml from sklearn... 2021. 7. 28.