이전다음 Welcome to Onds' ML Notes 더보기 Notes on Worldpress 더보기 Notes on Naver_blog 더보기 AAE AAE (Adversarial AE) 이번에는 AAE(Adversarial AE)를 배워보자. AAE는 VAE와 GAN을 합친 모델이다. GAN은 다음시간에 배울 내용이며 GAN을 보고 오시면 이해가 쉽다. AAE는 GAN에 구조를 띄고 있고 제너레이터(generator)를 VAE로 바꾼 모델이다 try: %tensorflow_version 2.x" except Exception: pass import tensorflow as tf from tensorflow.keras import layers,models,datasets,losses import numpy as np import matplotlib.pyplot as plt 모델을 만들기 전 패키지를 선언하자. (x_train, _), (_,_) = datasets.mnist.load_da.. CVAE CVAE (Convolution VAE) Convolution VAE를 해보자 기존에 사용했더 VAE는 순환 신경망를 사용하였지만 이번 모델은 CNN으로 바꾼 모델이다. 패키지들은 VAE와 동일하게 때문에 생략을 한다. (x_train, _), (x_test,_) = datasets.mnist.load_data() x_train = x_train.astype('float32') / 255. x_train = x_train.reshape(-1,28,28,1) x_test = x_test.astype('float32') / 255. x_test = x_test.reshape(-1,28,28,1) CNN을 사용하기 때문에 차원은 2차원이 아닌 3차원으로 변경하였다. input_shape = (28,28,1) latent = 2 # 차원 축소의 크기 .. VAE VAE(Variational Auto Encoder) _인코더, 평균 분산 확률분포를 이용하는 모델인 VAE(Variational Auto Encoder)를 알아보자 try: %tensorflow_version 2.x" except Exception: pass import tensorflow as tf from tensorflow.keras import layers,models,datasets,losses from tensorflow.keras import backend as K import numpy as np import matplotlib.pyplot as plt VAE모델 만들기에 앞서 패키지들을 선언을 한다. 새롭게 추가된 패키지에는 백엔드(backend) 패키지가 있는데 케라스내에서 텐서플로우 패키지를 사용하는 것입니다. (x_train, _), (x_test,_) .. Convolutional AE Convolutional AE 이번에는 CNN과 AE과 결합된 모델인 CAE를 실습해보자 이미지에서 강점을 보인 CNN이기 때문에 성능은 좋아졌다. 바로 CAE로 생성된 mnist 이미지부터 보겠습니다. 위에 있는 이미지는 원본이미지고 아래는 CAE로 나온 예측 이미지다. 손실이 거의 발생하지 않은 상태의 이미지인 것을 확인 할 수가 있다. 높은 성능을 보이기에 책에는 따로 실습을 담지 않았지만 실습파일에는 있으니 시간이 있다면 실습을 하는걸 추천한다. 실습은 노이즈가 섞인 이미지 데이터를 CAE로 학습하는 것을 할 것이다. try: %tensorflow_version 2.x" except Exception: pass import tensorflow as tf import numpy as np from tensorflow.keras .. 이미지 생성 실습으로 익히는 AE Deep AE를 이용한 가짜 이미지 생성 이번에는 Deep AE를 배워보자 기존에 AE에서 순환신경망을 여러 개 쌓아 깊게 변형된 모델이다 기존코드에서 사용했던 모듈들을 그대로 사용하기에 전처리까지는 생략을 한다 Hidden_input1 = 512 Hidden_input2 = 256 Hidden_input3 = 128 Hidden_input4 = 64 Hidden_input5 = 32 input_layer = layers.Input(shape=(784,)) Encoding = layers.Dense(Hidden_input1)(input_layer) Encoding = layers.Dense(Hidden_input2)(Encoding) Encoding = layers.Dense(Hidden_input3)(Encoding) Encoding = la.. 딥러닝 : Deep Learning 시작하기 머신러닝의 종류 강화학습 (Reinforce Learning) 강화학습은 앞서 소개한 세 종류의 학습과는 조금 다른 개념으로 컴퓨터의 동작이 적절한지에 대해 피드백이 있는 학습 방법을 말한다. 학습하는 컴퓨터를 에이전트라고 하며 에이전트가 어떠한 환경(environment) 안에서 하나의 행동(action)을 했을 때 옳다면 보상을(reward), 잘못되었다면 벌점(penalty)을 부여한다. 즉, 특정 환경에서 에이전트가 가장 많은 보상을 받기 위해 어떻게 행동해야 하는지 강조하는 것이다. 강화학습은 입력과 출력에 대한 데이터 쌍을 필요로 하지 않으며 차선의 행동도 허용하지 않는 특징이 있다. 강화학습에 대한 설명은 이정도로 끝내겠다. 강화학습에 대해 자세히 알고 싶은 독자는 서튼 교수의 [Reinforcement Learning]의 책을 참고하기 바란다. 작성자.. 머신러닝의 종류 반지도학습 (Semi-Supervised Learning) 반지도 학습은 준지도 학습이라고도 불리며 위에서 다룬 지도학습과 비지도학습을 섞은 학습 방식이다. 그렇기 때문에 데이터의 형태 또한 일부는 지도학습의 데이터 형태를, 일부는 비지도학습의 데이터 형태를 취하고 있다. 즉 반지도 학습은 라벨 y가 있는 데이터와 없는 데이터를 모두 가진 데이터를 이용한다. 데이터의 형태에 맞게 학습 방식 또한 지도 학습과 비지도 학습의 조합으로 이루어져 있는데, 라벨이 없는 데이터를 그룹화 할 때 라벨이 존재하는 일부 데이터를 이용하는 방식이다. 작성자 홍다혜 ghdek11@gmail.com / 이원재 wonway333@gmail.com 머신러닝의 종류 비지도학습 (Unsupervised Learning) 비지도 학습은 지도학습과 다르게 지도해줄 조력자의 도움 없이 컴퓨터 스스로 학습하는 형태를 말한다. 비지도 학습의 데이터는 x, y 가 존재하는 지도학습의 데이터에서 라벨 y 가 없는 형태이다. x 와 y의 관계를 파악했던 지도학습과는 달리 비지도 학습은 x들 간의 관계를 스스로 파악하는데 이는 학습에 사용된 데이터들의 특징을 분석해 그 특징별로 그룹을 나누는 것을 의미한다. 이를 통해 새로운 데이터를 입력 받으면 분류해 놓은 그룹 중 그 특징이 비슷한 그룹에 포함 시킨다. 간혹 비지도 학습과 지도학습의 분류를 혼동하는 경우가 있어 다음의 표를 보며 정리 해보자. 가장 두드러진 차이는 학습 데이터의 형태이다. 데이터의 생김새가 다르기 때문에 새로운 데이터에 대해서도 이 형태에 맞게 처리하게 된다. 작성자.. 최적화가 가장 중요하다! Adam Optimizer (Adaptive Moment Estimation) “Momentum+RMSProp의 장점을 다 가질거야! ” 작성자 홍다혜 ghdek11@gmail.com / 이원재 ondslee0808@gmail.com 최적화가 가장 중요하다! Adadelta Optimizer (Adaptive Delta) “아다그라드, 아직 갈 길이 먼데 보폭이 점점 작아지네? 가중치의 변화량을 고려해서 학습률을 변화시키자!” 작성자 홍다혜 ghdek11@gmail.com / 이원재 ondslee0808@gmail.com ARDINO LAB About Onds