딥 러닝의 사전 교육은 무엇입니까 작동 원리는 무엇입니까?


최상의 답변

딥 러닝의 사전 교육은 , 특정 작업을 시작하기 전에 기계를 교육합니다.

예 :

  1. 작업을 수행하도록 신경망을 교육하고 이미지의 데이터 세트 가중치를 무작위로 초기화하여 훈련을 시작합니다. 훈련을 시작하자마자 실수를 줄이고 작업을 수행하기 위해 가중치가 변경되거나 변경됩니다 (최적화 됨). 훈련 결과에 만족하면 훈련 된 신경망이 다음 번에 좋은 최적화와 더 나은 결과로 유사한 작업을 수행 할 수 있도록 네트워크의 가중치를 저장합니다.
  2. 다음 번에는 다음에서 시작합니다. 무작위로 초기화 된 가중치로 훈련하는 경우 이전 네트워크에서 저장 한 가중치를 새 실험의 초기 가중치 값으로 사용할 수 있습니다. 이러한 방식으로 가중치를 초기화하는 것을 사전 훈련 된 네트워크 사용이라고합니다 ……………………….

첫 번째 네트워크는 사전 훈련 된 네트워크입니다. 두 번째는 미세 조정중인 네트워크입니다.

사전 훈련의 기본 아이디어는 입력의 무작위 초기화가 잘 .. 무작위이며 가중치의 값은 해결하려는 작업입니다.

이전, 훈련의 값은 이전 훈련보다 나아야하며 값은 작업에 대해 적절하게 초기화되어야하며 최적의 값으로 설정하는 것이 좋습니다.

따라서 사전 훈련을 통해 네트워크에 유리한 출발을 할 수 있습니다. 이전에 데이터를 본 것처럼 요.

답변

먼저, 저는 우리가 1 주일이 대략 58 주인 수성 행성에 있다고 가정하겠습니다. 일주일에 5 일 동안 하루에 약 8 시간을 사용한다고 가정하면 2320 시간이 주어집니다. 연구 엔지니어와 초급 연구원으로 넘어갈만큼 딥 러닝을 충분히 이해하기에 충분합니다.

먼저 자신에게 호의를 베풀고 Goodfellow 등의 Deep Learning 책을 읽어보십시오. 지나치게 현학적이지 않으면서도 수학에서 벗어나지 않는 딥 러닝에 관한 매우 견고한 책입니다. 예를 들어, KL 발산을 다른 방식으로 최적화 할 때 어떤 일이 발생하는지, L1 및 L2 손실이 가중치에 실제로 어떤 영향을 미치는지 (손실 함수의 고유 벡터 측면에서), LSTM 뒤에있는 직관 등을 설명하는 훌륭한 방법이 있습니다. 책의 첫 번째 섹션부터 시작하십시오. 해당 물질 (YMMV)을 완전히 소화하는 데 약 2 주가 걸립니다. 이번 주를 지루하지 않고 수학적 복잡성에 얽매이지 않고 지나갔다면 이제 머신 러닝으로 전환 할 준비가 된 것입니다.

이 시점에서 읽기를 중단하고 코딩을 시작해야합니다. . 하지만 실제로 이해하기 위해서는 Tensorflow를 다운로드하지 말고, 좋은 파이썬에서 기본적인 것들 (로지스틱 회귀, SVM, kNN, PCA, GMM)을 구현하는 것부터 시작하십시오. 많은 사람들이 처음부터 기본 블록을 코딩하는 방법을 이해하지 못한 채 고수준 라이브러리를 사용하기 위해 서두르 며 그렇게하면 많은 것을 배울 수 있습니다. 예를 들어, PCA를 적용하기 전에 데이터를 표준화해야한다는 사실, 소프트 맥스를 수치 적으로 안정적으로 만드는 방법, log-softmax를 구현하기 위해 소프트 맥스 함수를 재사용해서는 안되는 이유 등을 학습합니다. 구현을 시작하려면 CS231n 으로 이동하여 첫 번째 과제를 완료하고 SVM 및 GMM을 구현하기 위해이를 구축하세요. 이를 구현하고 디버깅하는 데 약 4 주가 걸립니다 (numpy 또는 python에 대한 지식없이 시작한다고 가정). 이제 기본 머신 러닝 알고리즘을 처음부터 구현하는 방법을 알게되었습니다.

이제 CS231n 웹 사이트 (모듈 -1까지)에서 훌륭한 메모를 읽어보세요. 비 볼록 기능을 최적화하는 복잡한 과정을 이해하기 위해 자신 만의 시간을 갖고, 예, 읽는 모든 것을 구현하십시오. 운동량 기반 방법에서 기본 역 전파에 이르기까지 실제로 메커니즘을 배우려면 구현이 핵심입니다. 예를 들어, 역 전파를 직접 구현하는 경우 역방향 전달을 위해 수많은 데이터를 유지해야하는 방법을 알게 될 것이며,이 지식은 DL 엔지니어링의 일부 단계에서 메모리 부족 오류가 발생하는 경우 매우 유용 할 수 있습니다. 직업. 4 주가 더 걸릴 것입니다.

이제 10 주 동안 정신 나간 DL이되었습니다. 이제 기본적인 수학 기술에 충실했으며 원시 Python에서 피드 포워드 네트워크 및 기본 ML 알고리즘을 구현할 수 있습니다. 축하합니다. 여기서부터 한 단계 더 나아가겠습니다. 점점 더 어려워 질 것입니다 (따라서 더 재미있어집니다).

딥 러닝 책을 꺼내서 중단 한 부분부터 시작할 시간입니다. 6 장, 7 장, 8 장을 읽으십시오. 6 장은 쉬운 일이며 우리는 이미 그것을 마스터했습니다. 7 장은 어려워지기 시작하지만이 책은 수학적인 개념을 이해하기 쉬운 텍스트로 추출하는 데 탁월한 역할을합니다.학습을 보완하려면이 놀라운 강의를 시청하세요- 딥 러닝 강의 11 : 최대 마진 학습, 전달 및 기억 네트워크 .

이것은 4 주가 더 걸리 겠지만이 작업을 마치면 CNN과 RNN으로 졸업 할 준비가되었습니다. 다시 같은 철학을 따를 것입니다. cs231n의 노트를 읽고, dat net을 구현 및 훈련 한 다음 책을 읽고 더 자세한 내용을 이해합니다. 이 단계는 CNN에서 역 전파를 구현하는 (배치 정규화와 같은 모든 종소리와 휘파람 포함)가 그렇게 쉬운 일이 아니기 때문에 더 오래 걸리며 더 오래 걸릴 것입니다. LSTM의 경우도 마찬가지입니다 (그라디언트의 표준을 확인하고 너무 커지면 잘라 내고 너무 작아지면 더 짧은 시퀀스로 자릅니다). 프로 팁 -LSTM 학습을 위해 PennTree Bank 데이터 세트를 확인하고 언어 모델을 학습하여 약 110의 난이도를 얻을 수 있도록하는 것이 좋습니다. 그 90ish, 축하합니다, 당신은 그것을 올바르게하고 있습니다. CNN을 훈련하려면 CS231n에서 할당 2를 수행하십시오.

Phew. CNN / RNN 교육의 마지막 단계에서 책에서 관련 자료를 읽은 후 약 6 주가 걸리고 이제 최고가되기위한 노력은 38 주 밖에 남지 않았습니다.

마지막으로 시간 pip install tensorflow. 아무것도 생각하지 마십시오 . 아니요, 우리는 pytorch (자연적으로 동적이므로 autodiff 소프트웨어를 사용하려는 경우에는 좋지 않지만 그렇지 않은 경우에는 훌륭함) 또는 theano (충분히 크지 않음)를 수행하지 않습니다. 또는 keras와 같은 높은 수준의 라이브러리 (아름답지만 모든 것이 너무 쉬워 보입니다). 문서로 이동하여 MNIST 자습서를 읽어보십시오 (전문가의 경우 지금 우리가 그렇습니다). 처음에는 계산 그래프, 세션, 파이썬 자체에서도 별도의 “컴파일”과 “실행”이 있다는 사실이 모두 매우 이상 할 것입니다. 하지만 일단 익숙해지면 그것이 얼마나 아름답게 설계되었는지, 얼마나 쉽게 확장 할 수 있는지 깨닫기 시작할 것입니다. 예를 들어 자신 만의 LSTM을 작성하는 것은 기본 LSTM 클래스를 확장하는 것만큼이나 쉽습니다. 준비 연습 세트로 튜토리얼 ( 튜토리얼 | TensorFlow )의 코드를 읽고 각 튜토리얼을 매우주의 깊게 살펴보고 각 라인의 기능을 이해합니다. 그리고 왜. tensorflow 코드를 구성하는 방법을 배웁니다. 프로 팁 -저는 항상 학습, 테스트 및 예측을 위해 별도의 추상화를 갖고 싶습니다. 그리고 자리 표시 자부터 손실 함수 및 해당 손실 함수를 최적화하는 train\_op 정의까지 전체 계산 그래프를 작성하는 별도의 build() 함수입니다.

Shameless plug -최근에 기계 이해를위한 모델을 코딩했습니다 (정말 좋아하는 작업). 모델 코드를 함께 조합하는 방법을 보려면 MurtyShikhar / Question-Answering 을 확인하세요. tensorflow 기술을 테스트하려면 CNN 및 LSTM 코드를 tensorflow로 변환하여 동일한 (아마도 더 나은) 정확성 / 복잡성을 달성하세요.

텐서 플로우를 배우는 데 약 8 주가 걸리는 미친 해킹, 자습서 읽기, dem에 대한 좌절감 tensorflow 컴파일 오류가 있지만 그 여정이 보람 있기를 바랍니다. 이제 autodiff의 힘과 말 그대로 모든 딥 러닝 모델을 연결할 수있는 정말 멋진 기능을 갖게되었습니다. 몇 가지 조사 작업으로 넘어 가기 전에 tensorflow에서 재미있는 프로젝트를 시도해 보는 것은 어떨까요? 잘 정의 된 문제 (기계 번역 / 이미지 캡션 / 이해력 / 질문-답변 / 시각적 질문 응답 / 스타일 전송)에 대한 멋진 논문을 선택하고 Tensorflow에서 최첨단 모델을 구현합니다. 아직 GAN을 시도하지 마십시오. 우리는 그다지 멋지지 않습니다 (아직). 프로젝트를 마치는 데 약 5 주가 걸리고 현재 연구에 대해 읽는 것만으로도 약 5 주를 남기고 경쟁력있는 결과를 얻을 수 있습니다.

5 주가 DL의 폭을 다룰 수있는 짧은 기간이라는 것을 알고 있습니다. 연구 범위를 좁 히면 어떨까요? 생성 모델, seq2seq 모델 또는 강화 학습 중 하나의 문제 또는 기술을 선택하십시오. 강화 학습에 대해 아무것도 모르기 때문에 (하지만 배우려고합니다) 다른 두 가지에 초점을 맞출 것입니다.

생성 모델의 경우 우리 영주이자 구세주가 제공하는이 놀라운 튜토리얼부터 시작합니다. – NIPS 2016-Generative Adversarial Networks-Ian Goodfellow , 그리고 필요할 때 천천히 추적, 일시 중지 및 인터넷 검색. 처음 몇 주 동안의 수학 기술은 여기에서 매우 유용합니다. 그런 다음 GAN 원본 문서 DCGAN , SeqGAN 과 최신의 멋진 WGAN .

Seq2Seq의 경우 Google 브레인 과학자의 놀라운 강의 인 Sequence to Sequence Deep Learning (Quoc Le, Google) 을 시청 한 다음 Oriol Vinyals의 ICML 2017 튜토리얼- seq2seq icml 튜토리얼 .

끝.

시간이 좀 걸렸고 노력. 58 주차가 끝났고 이제 딥 러닝에 대한 폭 넓은 이해와 함께 견고한 수학 및 엔지니어링 기술을 갖게되었습니다. 이제 딥 러닝 연구에 더 깊이 들어가거나 (말장난을 하시나요?) 멋진 앱을 만들 시간입니다. 그 결정은 DL 엔지니어에게 맡기십시오.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다