Skip to content
This repository has been archived by the owner on Oct 19, 2023. It is now read-only.

Commit

Permalink
목차 수정 반영
Browse files Browse the repository at this point in the history
  • Loading branch information
keon committed Oct 7, 2019
1 parent 469e913 commit ee6ceed
Show file tree
Hide file tree
Showing 17 changed files with 115 additions and 40 deletions.
125 changes: 87 additions & 38 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,59 +6,108 @@
## 요구사항

아래 파이토치와 파이썬 버전을 지원합니다.

* PyTorch 1.0
* Python >= 3.6.1


## 목차

1. [딥러닝과 파이토치](01-딥러닝과_파이토치) - 딥러닝의 기본 지식을 쌓고 파이토치의 장단점에 대해 알아봅니다.
* [개념] 신경망의 원리
* [개념] 딥러닝과 신경망
* [개념] 왜 파이토치인가?
* 인공지능과 머신러닝
* 지도학습, 비지도학습, 그리고 강화학습
* 딥러닝과 신경망
* 파이토치가 개발되기까지
* 왜 파이토치인가?
2. [파이토치 시작하기](02-파이토치_시작하기) - 파이토치 환경설정과 사용법을 익혀봅니다
* [프로젝트 1] 파이토치 설치 & 환경구성
* [프로젝트 2] 파이토치 예제 내려받고 실행해보기
* [프로젝트 3] 토치비전과 토치텍스트로 데이터셋 불러오기
* 파이토치 설치 & 환경구성
* 파이토치 예제 내려받고 실행 확인하기
* 주피터 노트북
3. [파이토치로 구현하는 ANN](03-파이토치로_구현하는_ANN) - 파이토치를 이용하여 가장 기본적인 신경망을 만들어봅니다.
* [개념] 텐서와 Autograd
* [프로젝트 1] 경사하강법으로 이미지 복원하기
* [프로젝트 2] 신경망 모델 구현하기
* 텐서와 Autograd
* [텐서의 차원 자유자재로 다루기](03-파이토치로_구현하는_ANN/tensor_basic.ipynb)
* [텐서를 이용한 연산과 행렬곱](03-파이토치로_구현하는_ANN/tensor_operation.ipynb)
* [Autograd](03-파이토치로_구현하는_ANN/autograd_basic.ipynb)
* [경사하강법으로 이미지 복원하기](03-파이토치로_구현하는_ANN/image_recovery.ipynb)
* 오염된 이미지 문제
* 오염된 이미지를 복원하는 방법
* 문제 해결과 코드 구현
* [신경망 모델 구현하기](03-파이토치로_구현하는_ANN/basic_neural_network.ipynb)
* 인공 신경망(ANN)
* 간단한 분류 모델 구현하기
4. [패션 아이템을 구분하는 DNN](04-패션_아이템을_구분하는_DNN) - Fashion MNIST 데이터셋과 앞서 배운 인공신경망을 이용하여 패션아이템을 구분해봅니다.
* [개념] [Fashion MNIST 데이터셋 설명](04-패션_아이템을_구분하는_DNN/01-fashion-mnist.ipynb)
* [프로젝트 1] [Fashion MNIST 학습하기](04-패션_아이템을_구분하는_DNN/02-neural-network.ipynb)
* [] 성능 측정법 알아보기 (Train/Validation/Test)
* [프로젝트 2] [오버피팅과 정규화](04-패션_아이템을_구분하는_DNN/03-overfitting-and-regularization.ipynb)
* 더 보기
5. [이미지 인식능력이 탁월한 CNN](05-이미지_처리능력이_탁월한_CNN)
* [개념] CNN 기초
* [프로젝트 1] [CNN 모델 구현하기](05-이미지_처리능력이_탁월한_CNN/01-cnn.ipynb)
* [프로젝트 2] [컬러 데이터셋에 적용하기](05-이미지_처리능력이_탁월한_CNN/02-cifar-cnn.ipynb)
* [] [토치비전으로 복잡한 모델 사용하기](05-이미지_처리능력이_탁월한_CNN/03-torcivision-models.ipynb)
* 더 보기
6. [사람의 지도 없이 학습하는 Autoencoder](06-사람의_지도_없이_학습하는_Autoencoder) - 레이블이 없는 상태서 특징추출을 하는 오토인코더에 대해 배워봅니다.
* [개념] 오토인코더 기초
* [프로젝트 1] [오토인코더로 이미지의 특징을 압축해보기](06-사람의_지도_없이_학습하는_Autoencoder/01-autoencoder.ipynb)
* [프로젝트 2] Latent 공간 탐험하기
* 더 보기
* [Fashion MNIST 데이터셋 알아보기](04-패션_아이템을_구분하는_DNN/fashion-mnist.ipynb)
* [인공 신경망으로 패션 아이템 분류하기](04-패션_아이템을_구분하는_DNN/neural-network.ipynb)
* 환경 설정하기
* 이미지 분류 문제
* 이미지 분류를 위한 인공 신경망 구현
* 성능 측정하기
* [과적합과 드롭아웃](04-패션_아이템을_구분하는_DNN/overfitting-and-regularization.ipynb)
* 데이터 늘리기
* 드롭아웃
5. [이미지 처리능력이 탁월한 CNN](05-이미지_처리능력이_탁월한_CNN)
* CNN 기초
* 컴퓨터가 보는 이미지
* 컨볼루션
* CNN 모델
* [CNN 모델 구현하기](05-이미지_처리능력이_탁월한_CNN/cnn.ipynb)
* [ResNet으로 컬러 데이터셋에 적용하기](05-이미지_처리능력이_탁월한_CNN/resnet.ipynb)
* ResNet 소개
* CIFAR-10 데이터셋
* CNN을 깊게 쌓는 방법
6. [사람의 지도 없이 학습하는 오토인코더](06-사람의_지도_없이_학습하는_오토인코더) - 레이블이 없는 상태서 특징추출을 하는 오토인코더에 대해 배워봅니다.
* 오토인코더 기초
* [오토인코더로 이미지의 특징 추출하기](06-사람의_지도_없이_학습하는_오토인코더/basic_autoencoder.ipynb)
* 오토인코더 구현
* 잠재 변수 들여다보기
* [오토인코더로 망가진 이미지 복원하기](06-사람의_지도_없이_학습하는_오토인코더/denoising_autoencoder.ipynb)
* 잡음 제거 오토인코더 구현
* 잡음 제거 시각화하기
7. [순차적인 데이터를 처리하는 RNN](07-순차적인_데이터를_처리하는_RNN) - RNN을 활용하여 영화 리뷰 감정 분석과 기계번역을 해봅니다
* [개념] RNN 기초
* [프로젝트 1] [영화 리뷰 감정 분석](07-순차적인_데이터를_처리하는_RNN/01-text-classification.ipynb)
* [프로젝트 2] [Seq2Seq 기계 번역](07-순차적인_데이터를_처리하는_RNN/02-sequence-to-sequence.ipynb)
* 더 보기
8. [딥러닝을 해킹하는 Adversarial Attack](08-딥러닝을_해킹하는_Adversarial_Attack) - Adversarial Attack
* [개념] Adversarial Attack 이란?
* [프로젝트 1] [FGSM 공격](08-딥러닝을_해킹하는_Adversarial_Attack/01-fgsm-attack.ipynb)
* RNN 개요
* [영화 리뷰 감정 분석](07-순차적인_데이터를_처리하는_RNN/text-classification.ipynb)
* 자연어 전처리
* RNN 모델 구현
* [Seq2Seq 기계 번역](07-순차적인_데이터를_처리하는_RNN/sequence-to-sequence.ipynb)
* Seq2Seq 개요
* 인코더
* 디코더
* Seq2Seq 모델 구현하기
* 더 보기
8. [딥러닝을 해킹하는 적대적 공격](08-딥러닝을_해킹하는_적대적_공격) - 적대적 공격
* 적대적 공격 이란
* 적대적 공격의 종류
* [FGSM 공격](08-딥러닝을_해킹하는_적대적_공격/fgsm-attack.ipynb)
* 학습된 모델 불러오기
* 공격할 미이지 불러오기
* 공격 전 성능 확인하기
* FGSM 공격 함수 정의
* 적대적 예제 생성
* 적대적 예제 성능 확인
9. [경쟁하며 학습하는 GAN](09-경쟁하며_학습하는_GAN) - GAN을 이용하여 새로운 패션 아이템을 만들어봅니다.
* [개념] GAN 기초
* [프로젝트 1] [GAN으로 새로운 패션아이템 생성하기](09-경쟁하며_학습하는_GAN/01-gan.ipynb)
* [프로젝트 2] [Conditional GAN으로 생성 컨트롤하기](09-경쟁하며_학습하는_GAN/02-conditional-gan.ipynb)
* GAN 기초
* 생성자와 판별자
* [GAN으로 새로운 패션아이템 생성하기](09-경쟁하며_학습하는_GAN/gan.ipynb)
* 학습 준비
* 생성자와 판별자 구현
* GAN 학습 구현
* 결과물 시각화
* [cGAN으로 생성 제어하기](09-경쟁하며_학습하는_GAN/conditional-gan.ipynb)
* cGAN으로 원하는 이미지 생성하기
* 조건부 생성자와 판별자
* cGAN 학습 구현
* 결과물 시각화
* 더 보기
10. [주어진 환경과 상호작용하며 성장하는 DQN](10-주어진_환경과_상호작용하며_성장하는_DQN) - 간단한 게임환경 안에서 스스로 성장하는 DQN 에이전트를 만들어봅니다.
* [개념] 강화학습과 DQN기초
* [] OpenAI Gym
* [프로젝트 1] [카트폴 게임 마스터하기](10-주어진_환경과_상호작용을_통해_학습하는_DQN/01-cartpole-dqn.ipynb)
* 강화학습과 DQN기초
* [카트폴 게임 마스터하기](10-주어진_환경과_상호작용을_통해_학습하는_DQN/cartpole-dqn.ipynb)
* 하이퍼파라미터
* DQN 에이전트
* 이전 경험 기억하기
* 행동하기
* 경험으로부터 배우기
* 학습 시작하기
* 더 보기


Expand Down
2 changes: 1 addition & 1 deletion test/test_06.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@


# setup path
chapter_name = "06-사람의_지도_없이_학습하는_Autoencoder"
chapter_name = "06-사람의_지도_없이_학습하는_오토인코더"
dir_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), ".." , chapter_name)
sys.path.append(dir_path)

Expand Down
2 changes: 1 addition & 1 deletion test/test_08.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@


# setup path
chapter_name = "08-딥러닝을_해킹하는_Adversarial_Attack"
chapter_name = "08-딥러닝을_해킹하는_적대적_공격"
dir_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), ".." , chapter_name)
sys.path.append(dir_path)

Expand Down
26 changes: 26 additions & 0 deletions test/test_10.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import sys
import os
from importlib import import_module


# setup path
chapter_name = "08-딥러닝을_해킹하는_Adversarial_Attack"
dir_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), ".." , chapter_name)
sys.path.append(dir_path)



def test_chapter_exmaples():
mydir_tmp = os.path.join(dir_path) # add the testA folder name
mydir_new = os.chdir(mydir_tmp) # change the current working directory
mydir = os.getcwd() # set the main directory again, now it calls testA

chapter_examples = [
"cartpole_dqn",
]

for example in chapter_examples:
imported_package = import_module(example)

if __name__ == "__main__":
test_chapter_exmaples()

0 comments on commit ee6ceed

Please sign in to comment.