딥러닝 9

[밑바닥 부터 식해보는 딥러닝] 01. 수치 미분과 역전파

1. 수치 미분과 역전파 | Notion 참고 자료 bottlenose-oak-2e3.notion.site 0. 들어가면서 딥러닝을 공부하다 보면 항상마주치는 개념이 있다. 딥러닝 뉴비들이 갈려나가는 첫번째 위기라고 할 수 있는 오차역전파 (backpropagation) 이다. 고등학교 이후 수학, 특히 미분과 담을 쌓은 사람이라면 또는 수포자였다면 해당 위기는 정말 큰 위기로 느껴질 것이다. 하지만 딥러닝의 핵심을 이해하기 위해서는 (오차역전파라는 개념이 존재했기 때문에 현재의 딥러닝이 가능한 것이다. 최근에는 역전파 이외에 forward-forward라는 방법도 제시되고 있다) 해당 개념을 이해하고 넘어가는 것이 필수 적이다. 이번 시간에는 역전파와 관련된 개념들을 알아보고 numpy를 활용해서 직접..

[네이버 부스트 캠프 AI Tech] VAE 직접 구현하기 by Pytorch

본 글은 네이버 부스트 캠프 AI Tech 기간동안 개인적으로 배운 내용들을 주단위로 정리한 글입니다 본 글의 내용은 새롭게 알게 된 내용을 중심으로 정리하였고 복습 중요도를 선정해서 정리하였습니다 이번주에 정해진 진도를 이미 목요일날 다 나갔기 때문에 오늘은 특별히 이번주 내용중 하나였던 VAE - Variational Auto-Encoder를 pytroch를 활용해서 구현하는 글을 작성했습니다 ✅ Week 3 목차 간략한 VAE 소개 pytorch를 활용해 VAE 구현하기 model train ✅ 1. 간략한 VAE 소개하기 이번주 Generative Model 시간에 간단하게 VAE, Variational Auto-Encoder를 알아보았다 [네이버 부스트 캠프 AI Tech] Generative ..

[네이버 부스트 캠프 AI Tech] OOM & Multi GPU & Hyper parameter tune

본 글은 네이버 부스트 캠프 AI Tech 기간동안 개인적으로 배운 내용들을 주단위로 정리한 글입니다 본 글의 내용은 새롭게 알게 된 내용을 중심으로 정리하였고 복습 중요도를 선정해서 정리하였습니다 ✅ Week 2 목차 Manage OOM Mult-GPU Hyper parameter tune *주의 : 이번 내용은 실습적인 코드보다는 이론적인 설명을 중심으로 전개하였습니다. 실습코드와 상세한 기술까지 작성하면 글의 분량이 길어질 것 같아서 해당 부분에 포함되는 실습 내용은 각각 추가 내용정리에 추후에 *강조* 정리하겠습니다 ✅ Intro 다시 돌아온 도비 다시 도비가 돌아왔습니다 그동안 도비는 다양한 모델을 돌려보고 pytorch에 대한 이해도를 얻었습니다 그러던 중 도비는 다양한 에러들을 맞이 했습니다..

[네이버 부스트 캠프 AI Tech] Pretrained Model & Training Monitoring

본 글은 네이버 부스트 캠프 AI Tech 기간동안 개인적으로 배운 내용들을 주단위로 정리한 글입니다 본 글의 내용은 새롭게 알게 된 내용을 중심으로 정리하였고 복습 중요도를 선정해서 정리하였습니다 + ✅일주일 동안 글쓰는 내용이 많아져서 딱딱한 말투와 재미없는 글로 변화하고 있다고 생각했습니다 그래서 학습의 효율성을 올리고 누구나 봐도 이해하기 쉽운 글로 변화를 주고 싶어서 우리의 친구 집요정 도비 를 이번 글 부터 출연시키게 되었습니다 앞으로 함께할 도비와 그의 AI 학습 여정에 기대를 해주세요 :) 🎈도비의 프로필 - 출생 : ?년 6월 28일 - 종 : 집요정 - 키 : 약 91cm - 좋아하는 것 : 양말 - 경력 : - 말포이 가문 집요정 (? - 1993) - 호그와트 집요정 (1994 - ..

[딥러닝]활성화 함수 (Activation)

1. Activation? 딥러닝 모델을 구성하다 보면 레이어 안에 활성화 함수(Activation)이 구성된다는 것을 알 수 있다. 그렇다면 활성화 함수는 무엇일까? 그리고 왜 사용하는 것일까? 활성화 함수는 은닉층을 통과 해서 나온 가중치 곱의 합에 '비선형성'을 추가하기 위해서 사용된다. '비선형성'을 왜 추가해야할까? 바로 모델 레이어를 깊게 쌓는 것에 의미를 부여하기 위해서이다. 쉽게 말해서 활성화 함수 위치에 선형함수를 사용하게 되면 그냥 단순한 선형분류기의 기능밖에 하지 못한다. 위의 사진을 보면 선형과 비선형의 의미를 이해할 수 있을 것이다. 선형으로 분류하는 문제같은 경우는 신경망 모델이 아니더라고 기존 머신러닝 모델로 해결가능하다. 그러나 실제 세계의 문제에서는 선형 그래프의 모양처럼 ..

[딥러닝]규제 Regularization

1. Regularization? 딥러닝 모델을 구성하다 보면 우리가 만든 모델이 실제 데이터에 잘 맞지않는 (과적합 or 과소적합) 결과를 마주치게 될것이다. 이이럴때 우리는 '규제' Regularization를 활용해서 이러한 현상을 피할 수 있는데 쉽게 설명하자면 모델에 조건들을 추가해서 어느 선을 넘지 않은 이상한 모델이 만들어 지지 않게 만드는 것이다. 그렇다면 왜 이러한 규제들을 사용할까? 앞에서 설명했듯이 과적합이나 과소적합 (Overfitting, Underfitting)을 피하기 위해서 이다. 과적합과 과소적합을 피하기 위해서 우리가 할 수 있는 방법은 크게 2가지이다. 1. DataSet의 Size를 증가한다 하지만 이러한 방법은 실제 데이터를 수집하는 환경에 제약이 있다. 또한 캐글이..

[딥러닝] 옵티마이저 (Optimizer)

1. Optimizer? 딥러닝 모델을 학습하다 보면 마주치는 장치가 있다. 바로 옵티마이저(Optimizer)이다. 옵티마이저는 무엇일까? 쉽게 말해서 loss function(ex MSE, MAE...)을 사용해서 구한 오차를 이용하여 미분을 하여 기울기를 구하고이를 통해서 어떻게 뉴런 네트워크의 파라미터를 업데이트 할지 결정하는 방법이다. 즉, 옵티마이저를 결정함에 따라서 파라미터의 수정 방법과 학습의 정도가 차이 날 수 있다.물론 명심해야 할 것은 모든 학습에서 최고의 방법은 존재하지 않는다.각 옵티마이저를 사용해보고 비교한 다음 최적의 방법을 선택하는 것이 최선이다. 위 사진은 옵티마이저의 발전단계를 표현한 사진이다. 스텝 방향을 조절하는 방법과 스텝 사이즈를 조절하는 방법으로 크게 나누어진다...

[논문 구현] 근본을 찾아서... 0. LeNet-5 (GradientBased Learning Applied to DocumentRecognition)

오늘은 "특별히" CNN 모델의 근본인 LeNet5를 Pytorch를 활용해서 구현해볼려고 합니다 최근 머신러닝을 sklearn없이 구현하고 있는 개인만의 프로젝트를 하고 있는데 추가 적인 개인 프로젝트로 DL 모델들로 직접 구현해보려고 한다 논문 링크 : http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf 오늘 구현해볼 논문은 98년도에 나온 CNN의 아버지 LeNet-5이다 (근본 중에 근본) LeNet- 5 기본 구조 (LeNet-5 Architecture) 98년도에 나온 모델이므로 구조는 상당히 단순하다 *전체적인 구조* 3개의 Convolutions layer - 2개의 Subsampling layer - 1개의 fc레이어 [활성화 함수..

[논문 리뷰-CNN] 1. ImageNet Classification with Deep Convolutional Neural Networks (AlexNet)

더보기 1989년 'Backpropagation applied to handwritten zip code recognition, LeCun, 1989'을 시작으로 CNN의 이론적 토대가 완성되었다. 이는 1998년 'LeNet'으로 연결 되었으나 당시의 하드웨어적인 한계 때문에 큰 모델을 사용하기 힘들었다. 그런 중 2012년 LeNet을 발전시킨 AlexNet이 나오게 되고 GPU를 사용한 모델 학습이 가능해짐으로써 본격적인 CNN의 시대가 개막하게 되었다. ✅본격적인 시작에 앞서서 간단히 살펴 보는 CNN - 많고 많은 신경망 모델 가운데 왜? 이미지는 CNN인가? CNN을 사용하기 이전에도 MLP(다층 신경망)를 사용하여 이미지를 학습할 수 있었다. 그러나 이는 이미지를 flat하게 풀어서 사용하였..