Skip to content

Latest commit

 

History

History
159 lines (127 loc) · 7.99 KB

README.md

File metadata and controls

159 lines (127 loc) · 7.99 KB

Cpprhtn's_Deep_Learning

(주의)Python 문법에 대한 설명은 하지않음

How to Learn?

개론 강의 목록과 실습 강의 목록표를 따라 공부하면 됩니다.

개론 강의 자료는 필자가 들고 있으며, 필자의 스터디(멘토링)을 듣는 분께만 제공이 됩니다. 혹시 관심 있으신분은 [email protected]으로 메일 넣어주세요.

목록표의 title 제목들(파란글씨)를 클릭할 시에 내용을 볼 수 있습니다.

또한 실습 강의 목록에 있는 Number는 AI_class폴더 안의 폴더 번호와 같습니다.

Development Environment

Python Verson = 3.8

Jupyter notebook = 6.1.4

Tensorflow = 2.4.0

Google Colab

개론 강의 목록

Number Title
1 인공지능 소개
2 인공지능 발전의 역사
3 문제 해결 및 탐색 전략
4 휴리스틱 탐색
5 강화학습 소개
6 마르코프 과정
7 마르코프 결정 과정
8 자연어 처리
9 컴퓨터 비전

실습 강의 목록

Number Title Description Practice
* 참고서
* What is EDA
* 전처리 참고서
* 시각화 참고서
* 스케일링 참고서
* 머신러닝
1 머신러닝의 종류 지도학습, 비지도학습, 강화학습, 준지도학습에 대한 설명
* 지도학습
2 단순회귀분석 단순회귀분석에 대한 설명 실습
3 다항회귀분석 다항회귀분석에 대한 설명 실습
4 다중회귀분석 다중회귀분석에 대한 설명 실습
5 KNN KNN에 대한 설명 실습
6 SVM SVM에 대한 설명 실습
* CART(분류, 회귀 둘다 가능)
7 DecisionTree DecisionTree에 대한 설명 실습
8 RandomForest RandomForest에 대한 설명 실습
* 비지도학습
9 k-Means k-Means에 대한 설명 실습
10 DBSCAN DBSCAN에 대한 설명 실습
* 딥러닝
11 딥러닝이란 머신러닝과 딥러닝, ANN에 대한 설명
12 퍼셉트론 퍼셉트론 개념 설명
13 활성화함수1 활성화 함수 설명1
14 활성화함수2 활성화 함수 설명2
15 신경망 연산방법 신경망 연산방법 설명
16 신경망 구현 신경망 파이썬으로 구현해보기
17 신경망 계산 신경망 계산해보기
18 손실함수 cost function 설명
19 경사하강법 경사하강법 설명
20 Keras 모델 사용방법 케라스 라이브러리를 이용해 딥러닝 모델 생성하는 방법 알아보기
* DNN
21 DNN 실습 이제까지 배운 방법을 통해서 딥러닝 모델로 제작 실습
22 DNN 실습2 실습 2 실습
23 DNN 실습3 캐글에서 실제로 적용해보기
* 개인 프로젝트
24 개인 프로젝트 진행순서 DNN모델을 이용한 개인 프로젝트 진행해보기
* CNN
25 CNN 이론 CNN 이론에 대한 설명
26 CNN 실습 mnist data를 이용한 CNN 실습
27 CNN 실습2 CNN으로 개와 고양이 이미지를 분류
28 CNN 실습3 CNN으로 의류 이미지 분류
* RNN
29 RNN 이론 RNN 이론에 대한 설명
30 LSTM 이론 LSTM 이론에 대한 설명

##Tensorflow-gpu 버전을 쓰면서 생긴 에러에 대한 해결법

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
import os
os.environ['TF_XLA_FLAGS'] = '--tf_xla_enable_xla_devices'
#GPU 멀티로 돌아갈 때, 단일지정 코드
import tensorflow as tf 

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
    try:
        # Currently, memory growth needs to be the same across GPUs
        for gpu in gpus:
            tf.config.experimental.set_memory_growth(gpu, True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
    except RuntimeError as e:
        # Memory growth must be set before GPUs have been initialized
        print(e)

딥러닝을 다루면서 드는 생각들

  • 기계가 사람처럼 생각이 가능한가?

    • 윤리의식이나 도덕적 행동에 대한 이해가 가능할까?
  • 강화학습을 기반으로 해서, 아기키우듯이 10년, 20년 가르치면 인간처럼 활동이 가능할까?

    • LOW계층에는 무의식적인 움직임, 행동이 프로그래밍 되어야?
  • 신경망 이외로는 구현할 방법이 없을까?

  • 인간은 누구나 실수를 한다. AI역시 실수도 할 수 있어야 하지 않나?

    • 의도되지 않은 실수
    • 역량을 벗어난 수행을 할 때 발생?
  • 이루다 사례를 보면서, Input 데이터가 얼마나 중요한지를 다시 느낌

AI기술인 머신러닝과 딥러닝중 딥러닝을 먼저 알아야 한다고 생각한다.

우선 머신러닝 안에 딥러닝이 포함되는 개념이라고 보면 된다.

머신 러닝은 기본적으로 알고리즘을 이용해 데이터를 분석하고, 분석을 통해 학습하며, 학습한 내용을 기반으로 판단이나 예측을 한다. 이 중에서 학습하고 예측을 하는 과정에서 머신러닝과 딥러닝이 구분이 된다. 머신러닝의 경우에는 구현되어있는 라이브러리를 가져와 하이퍼파라미터 값의 조정으로 최적의 성능을 찾아내는 방법이다. 대부분의 구현된 라이브러리는 수학적 기법에 의한 것이다.

반면에 딥러닝은 뇌의 뉴런과 유사한 정보 입출력 계층을 활용해 데이터를 학습한다. 이를 달성하기 위해 딥러닝은 인공 신경망이라는 계층화된 알고리즘 구조를 사용한다. 인공 신경망의 설계는 인간 두뇌의 생물학적 신경망에서 영감을 얻어, 표준 머신 러닝 모델보다 훨씬 더 뛰어난 학습 프로세스를 제공한다.