본문 바로가기

교재 리뷰7

케라스 창시자에게 배우는 딥러닝 - 7. 딥러닝을 위한 고급 도구 # 세줄 요약 # 다중 입력, 다중 출력, 복잡한 네트워크 topology를 갖는 모델의 경우 케라스에서는 함수형API를 사용하며, Input layer와 output layer들을 정의한 후 마지막에 'Model([input_1, input_2], [output_1, output_2, output3])'과 같은 함수의 형태로 묶어줘야 한다. 케라스 콜백(callback)은 모델의 fit() 메서드가 호출될 떄 전달되는 객체로서 모델 체크포인트 저장, 조기 종료(early stopping), 하이퍼 파라미터 동적 조정(ex. Learning rate), 텐서보드 시각화 등이 있다. 딥러닝 모델의 성능을 최대한으로 끌어올리는 방법에는 Batch Normalization, Separable Convoluti.. 2020. 12. 8.
케라스 창시자에게 배우는 딥러닝 - 6. 텍스트와 시퀀스를 위한 딥러닝 # 세줄요약 # 텍스트를 다루려면 텍스트를 단어, 문자, n-그램 단위로 나눠주는 토큰화(tokenization)라는 작업을 해주어야 하며, 이러한 토큰화에는 단순히 0, 1을 이용하여 행렬 배치해주는 '원핫 인코딩(one-hot encoding)'과 학습을 통해 단어 벡터(word vector)로 만들어주는 '단어 임베딩(word embedding)' 두가지 방법이 존재한다. 시퀀스 또는 시계열 데이터인 자연어 처리를 위해서는 네트워크가 전체 시퀀스의 흐름을 분석할 필요가 있고, 따라서 시퀀스의 원소를 순회하며 처리한 상태를 저장하고, 이전의 처리한 정보를 재사용하는 순환신경망(RNN: Recurrent Neural Network)이 주로 사용된다. 순환신경망(RNN)에서 주로 쓰이는 층(layer)로.. 2020. 12. 3.
케라스 창시자에게 배우는 딥러닝 - 5. 컴퓨터 비전을 위한 딥러닝 # 세줄 요약 # 합성곱 신경망(Convolutional Neural Network)은 합성곱층(Convolutional layer)와 풀링층(Pooling layer)로 이루어진 신경망을 의미하며, 시각적인 문제(Computer Vision)를 다루는데 가장 강력한 툴이다. 적은 이미지 데이터셋을 가지고 있을때 효과적인 방법은 사전 훈련된 네트워크(pretrained network)를 이용하여 특성 추출(feature extraction) 또는 미세 조정(fine tunning) 방법을 사용하는 것이다. 일반적인 딥러닝 모델이 블랙박스(학습 과정을 사람이 이해하기 어려움)인 것에 반해 시각적인 패턴을 학습하는 합성곱 신경망은 중간층의 출력(feature map), 필터(filter)와 클래스 활성화에 .. 2020. 11. 16.
케라스 창시자에게 배우는 딥러닝 - 4. 머신 러닝의 기본 요소 # 세줄 요약 # 머신러닝은 지도학습(Supervised Learning: 입력데이터에 타깃(정답)을 매핑하는 방법을 학습), 비지도학습(Unsupervised Learning: 타깃 없이 입력데이터의 흥미로운 특징 또는 표현 학습), 자기지도학습(Self-supervised Learning: 입력데이터에서 경험적인 알고리즘을 사용해 레이블 생성), 강화학습(Reinforcement Learning: 에이전트가 주어진 환경에서 보상을 최대화하는 방법을 학습) 등의 네가지 분류로 나뉜다. 머신러닝에서는 데이터를 훈련에 사용되는 훈련데이터(Train Dataset), 훈련 중 성능을 평가하여 모델 튜닝에 도움을 주는 검증 데이터(Validation Dataset), 훈련이 끝난 모델을 완전히 새로운 데이터에.. 2020. 10. 20.
케라스 창시자에게 배우는 딥러닝 - 3. 신경망 시작하기 # 세줄요약 # 신경망이 가장 많이 사용되는 문제로는 이진 분류, 다중 분류, 스칼라 회귀 등이 있으며 각각의 문제에 맞는 올바른 손실함수를 선택하는 것이 중요하다(이진 분류: Binary crossentropy, 다중 분류: Categorical crossentropy, 스칼라 회귀: Mean Squared Error). 전형적인 케라스 작업 흐름: 훈련 데이터(입력 텐서, 타깃 텐서) -> 네트워크(신경망 모델) 정의 -> 손실함수, 옵티마이저, 측정지표 선택 후 학습과정 설정 -> 모델의 fit() 메소드 반복 호출 훈련 데이터가 적으면 과대적합을 피하기 위해 은닉층의 수를 줄인 작은 모델을 쓰거나 k-겹 교차검증과 같은 방법으로 모델의 신뢰도를 올릴 수 있다(은닉층이 클수록 추출하는 특성이 많아지.. 2020. 8. 31.
케라스 창시자에게 배우는 딥러닝 - 2. 시작하기 전에: 신경망의 수학적 구성 요소 # 세줄요약 # 텐서(Tensor)는 머신러닝의 기본구성요소로 다차원 넘파이(NumPy) 배열에 데이터를 저장하는 것을 의미하며, 심층신경망(DNN)의 각 층에서 수치 데이터 텐서를 텐서 연산을 통해 새로운 표현으로 변환하는 것이 딥러닝의 학습과정이다. 머신러닝에서 훈련은 데이터 샘플과 타깃의 배치를 랜덤하게 뽑고 이 배치에서 손실에 대한 파라미터의 그래디언트(Gradient)를 계산해 반대방향으로 가중치를 업데이트하는 과정이 반복되는 것을 의미한다. 훈련과정에서 사용되는 핵심 개념은 손실(훈련하는 동안 최소화 해야할 양)과 옵티마이저(Optimizer: 손실에 대한 그래디언트가 파라미터를 업데이트하는 방식)이다. # 상세 리뷰 # 1. 텐서(Tensor) - 머신러닝 시스템에서 일반적으로 사용하는 기본.. 2020. 8. 18.
케라스 창시자에게 배우는 딥러닝 - 1. 딥러닝이란 무엇인가? # 세줄요약 # 머신러닝은 데이터와 기댓값이 주어졌을 때 데이터처리 작업을 위한 실행규칙을 찾는 것으로 다시 말하면 입력데이터를 기반으로 기대출력에 가깝게 만드는 유용한 표현(Representation)을 학습하는 것이다(표현: 데이터를 해석하는 다른 방법). 딥러닝은 기본층을 겹겹이 쌓아올려 구성한 신경망(Neural Network)이라는 모델을 사용하여 의미있는 표현을 학습하는 것으로, 심층신경망을 정보가 연속된 필터를 통과하면서 순도높게 정제되는 다단계 정보 추출작업을 의미한다. 딥러닝이 다른 머신러닝 기법(Logistic Regression, SVM: Support Vector Machine 등등)보다 빠르게 확산된 이유는 데이터의 좋은 표현을 직접 찾는 특성공학(feature engineerin.. 2019. 12. 4.