딥러닝 직접 구현하기 프로젝트 0차시 - 프로젝트 설명
지금부터 별로 쓸데는 없지만 재미있는 프로젝트를 하나 할까 합니다.
지금까지는 계속 인공지능에 관한 새로운 내용, 새로운 알고리즘 등을 배우면서 텐서플로우 및 파이토치로 시연하기만 했었는데, 이렇게 하니 알고리즘에 대한 확실한 이해가 부족해지는 것 같았습니다. 응용 능력도 많이 떨어지는것 같구요.
따라서, 이 프로젝트에서는 기본적인 데이터셋 관련 함수나 numpy, pandas와 같은 모듈만을 사용하여 딥러닝 및 머신 러닝 기술을 구현할 예정입니다.
역전파법과 순전파의 계산과 같은 수학적인 부분들도 직접 계산해서 코드로 구현할 예정입니다.
또한, 이 프로젝트의 게시글은 다른 게시글처럼 인공지능을 모르는 사람들을 위한 게시글이 아니라, 인공지능이 뭔지는 잘 아는 사람들을 위한 게시글입니다.
따라서, 기본적인 인공지능과 관련된 내용은 버리고, 특정 함수의 미분법이나 구현한 방식 등에 대해서만 다룰 예정입니다.
(인공지능의 기본이 부족하다면 모두를 위한 딥러닝 게시글 및 영상을 참조하시면 되겠습니다.)
일단 이 프로젝트의 첫 목표는 "Policy Gradient로 오목/지뢰찾기 인공지능 만들기"가 될 것 같습니다. 매주 주말마다 열심히 코드를 짜면서 1학기가 끝나기 전까지 완성이 되기를 바랍니다.
참고로, "밑바닥부터 시작하는 딥 러닝" 서적을 참고하여 제작하기에, 코드가 일부 비슷한 부분이 있을 수 있습니다.
https://github.com/cdjs1432/DeepLearningBasic
그리고, 이번에 처음으로 깃허브를 좀 활용할까 합니다.
코딩하다 뻘짓해서 코드 날리는 경우가 꽤 흔했던지라 ㅠ
글 올라오면 바로 해당 코드를 깃허브에 업로드 할 예정이니, 전체 코드가 필요하시다면 깃허브에서 가져가시면 되겠습니다.
일단 지금 구상하고 있는 프로젝트의 목차는 다음과 같습니다.
1. 기본 머신 러닝
1-1. Linear Regression / Gradient Descent 구현하기
1-2. Stochastic Gradient Descent 구현하기
1-3. Logistic Regression 구현하기 (Iris dataset)
1-4. Softmax Classification 구현하기 (MNIST dataset)
2. 딥 러닝
2-1. Single-layer Gradient Descent 구현하기
2-2. Multi-layer Softmax Classification 구현하기 (MNIST dataset)
2-3. 다양한 활성화 함수 (activation function) 구현하기 (ReLU, Leaky ReLU, maxout, ...)
2-4. 부록) 코드 리팩토링
2-5. 다양한 optimization 기법 구현하기 (RMSprop, Adam, ...)
2-6. Xavier Initialization, Regularization, Dropout 구현하기
3. CNN(Convolutional Neural Network) 구현하기
3-1. Convolution Layer 구현하기
3-2. Pooling / Padding 구현하기
4. 강화 학습 (원래는 CNN구현을 먼저 하려 했는데, 우선 오목/지뢰찾기 인공지능이 급해서..)
4-1. 기본적인 Q-Learning 구현하기 (gym 모듈 활용)
4-2. Policy Gradient 구현하기 (직접 만든 지뢰찾기 활용)
4-...
위의 목차는 그냥 단순한 구상일 뿐이고, 앞으로 계속해서 수정해 나가겠습니다.
한번 시작해 보겠습니다!
'인공지능 > 딥러닝 직접 구현하기 프로젝트' 카테고리의 다른 글
딥러닝 직접 구현하기 프로젝트 2-1차시 - Single-Layer Gradient Descent 구현하기 (0) | 2020.06.16 |
---|---|
딥러닝 직접 구현하기 프로젝트 1-4차시 - Softmax Classification & Cross-Entropy Loss구현하기 (8) | 2020.06.14 |
딥러닝 직접 구현하기 프로젝트 1-3차시 - Logistic Regression 구현하기 (0) | 2020.06.12 |
딥러닝 직접 구현하기 프로젝트 1-2차시 - Stochastic Gradient Descent 구현하기 (0) | 2020.06.12 |
딥러닝 직접 구현하기 프로젝트 1-1차시 - Gradient Descent의 구현 (0) | 2020.05.30 |