Study/MachineLearning 16

[Deep Learning with Python] 5-2, 5-3 케라스 콜백과 텐서보드를 사용한 딥러닝 모델 검사와 모니터링, 모델 성능 최대로 끌어올리기

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.7을 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 케라스 콜백과 텐서보드를 사용한 딥러닝 모델 검사와 모니터링 콜백을 사용하여 모델의 훈련 과정 제어하기 모델을 훈련할 때는 예상할 수 없는 것들이 많이 있습니다. 예를 들면, 최적의 모델을 위해 에포크가 얼마나 필요한지는 훈련하기 전에는 알 수 없으므로, ..

[Deep Learning with Python] 5-1. 케라스의 함수형 API

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.7을 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 지금까지 사용했던 모든 신경망은 Sequential 모델을 사용해서 만들었습니다. Sequential 모델은 네트워크 입력과 출력이 하나라고 가정하며, 층을 차례대로 쌓아서 만들었습니다. 이런 모델이 잘 작동하는 경우도 많지만, 그렇지 않은 경우도 많습니다..

[Deep Learning with Python] 4-4. 합성곱 신경망을 사용한 시퀀스 처리

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.6을 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 합성곱 신경망은 입력의 부분 패치에서 특성을 뽑아내어 구조적인 표현을 만들고, 데이터를 효율적으로 사용하기 때문에 컴퓨터 비전 문제에 잘 맞습니다. 이는 시퀀스 처리와도 깊게 관련되어 있으며, 시간을 2D이미지의 높이와 너비처럼 공간의 차원으로 다룰 수 있..

[Deep Learning with Python] 4-3. 순환 신경망의 고급 사용법

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.6을 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 기온 예측 문제 이번에는 시퀀스 데이터 중 하나인 온도 예측 문제에 RNN을 적용해볼 것입니다. 데이터를 사용하여 마지막 데이터 포인로부터 24시간 후의 온도를 예측해볼 것입니다. 이를 위해 다음과 같은 기법들을 사용해볼 것입니다. - 순환 드롭아웃 : 순..

[Deep Learning with Python] 4-2. 순환 신경망 이해하기

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.6을 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 완전 연결 신경망이나 합성곱 신경망의 특징은 메모리가 없다는 점입니다. 네트워크에 주입되는 입력은 독립적이며, 입력 간에 유지되는 상태가 없습니다. 이런 네티워크로 시퀀스나 시계열 데이터 포인트를 처리하기 위해서는 네트워크에 전체 시퀀스를 주입해야 합니다...

[Deep Learning with Python] 4-1. 텍스트 데이터 다루기

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.6을 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 이번에는 텍스트, 시계열 또는 일반적인 시퀀스 데이터를 처리할 수 있는 딥러닝 모델에 대해 알아봅니다. 시퀀스 데이터를 처리하는 기본적인 딥러닝 모델은 순환 신경망과 1D 합성곱 신경망 이렇게 2가지입니다. 1. 텍스트 데이터 다루기 텍스트는 가장 흔한 시..

[Deep Learning with Python] 3. 컴퓨터 비전을 위한 딥러닝

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.5를 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 합성곱 신경망 합성곱 연산 완전 연결 층과 합성곱 층의 근본적인 차이는 다음과 같습니다. - Dense 층은 입력 특성 공간에 있는 전역 패턴을 학습합니다. - 합성곱 층은 지역 패턴을 학습합니다. 합성곱 층에서 지역 패턴을 학습할 때는 일반적으로 3x3 ..

Deep Learning with Python] 2. 신경망 시작하기

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.3을 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 신경망의 구조 층 : 딥 러닝의 구성 단위 층(layer)은 하나 이상의 텐서를 입력으로 받아서 하나 이상의 텐서를 출력하는 데이터 처리 모듈입니다. 상태가 없는 층의 종류도 있지만, 대부분의 경우 가중치라는 층의 상태를 갖습니다. 적절한 텐서 포맷과 데이..

[Deep Learning with Python] 1. 신경망의 수학적 구성 요소

이번 포스트는 케라스 창시자에게 배우는 딥러닝(Deep Learning with Python)의 ch.2를 참고하였습니다. 이번 포스트를 읽기 전에, [Do it!] 시리즈를 먼저 읽는것을 권장합니다. 이 포스트에서는 [Do it!] 시리즈에 중복해서 나온 내용들을 많이 생략하였습니다. 이 책은 딥 러닝의 입문서로서는 적절하지 않다고 생각됩니다. 딥 러닝에 대한 어느정도 지식이 있고, 케라스의 사용방법에 대해 좀 더 자세히 알고 싶은 분께 권장합니다. 먼저, 복습해볼 겸 간단하게 MNIST 데이터 세트를 사용하여 케라스를 사용하여 완전 연결 신경망을 구성해보겠습니다. 1. 데이터를 불러오고, 훈련 데이터의 형태를 확인해봅니다. from keras.datasets import mnist (train_ima..

[Do it!]7. 텍스트 분류하기 - 순환 신경망

이 포스트는 Do it! 정직하게 코딩하며 배우는 딥러닝 입문 pp.280~317을 참고하였습니다. 순차 데이터와 순환 신경망 순차 데이터 ​지금까지 사용했던 데이터는 각 샘플이 독립적이라고 가정했습니다. 따라서 에포크마다 전체 샘플을 무작위로 섞을 수 있었습니다. 하지만, 우리가 배울 데이터 중에서는 독립적이지 않은 샘플이 많이 있습니다. 예를 들면, 날씨 정보나 텍스트 같은 경우입니다. 예를 들어 날씨 데이터의 경우, 오후 3시의 온도가 20도였다면, 오후 12시~2시 또는 오후 4시~6시의 온도는 20도에서 그렇게 크게 벗어나지 않을 것이라는 것을 압니다. 또한, 오후 4시~6시는 오후 3시의 온도보다 더 내려갈 것이라는 것 또한 압니다. 즉, 어떤 한 데이터를 알면 다른 데이터에 대한 정보도 얻을..