Skip to content

2. Caffe의 내부 알아보기

HanJiHoon edited this page Nov 29, 2017 · 3 revisions

Caffe의 내부 알아보기

Caffe는 딥러닝 프레임워크로 이 튜토리얼은 딥러닝의 원리, 구성 그리고 사용법에 대해서 설명할 것입니다.

이 튜토리얼은 프레임워크 튜토리얼로써 작성한 것이며, 딥러닝의 전체 과정과 맥락 그리고 한계에 대해서는 다루지는 않습니다.

이 튜토리얼이 여러분들에게 유용한 설명이 되기를 바라며 기계학습의 배경지식과 신경망에 대한 이해가 이 튜토리얼을 이해하는데에 도움이 될 것입니다.

이 튜토리얼은 Caffe 공식 튜토리얼을 기반으로 하여 작성하였습니다.

이론

여러분들은 해당 Caffe 튜토리얼을 진행하실 때마다 다음과 같은 점들을 이해하실 수 있을 것입니다.

  1. 표현 : 모델과 최적화는 일반적 코딩 작업과는 달리 일반적문장으로 이루어진 평문을 작성하듯이 선언을 할 수 있습니다.

  2. 속도 : 산업과 연구분야 쪽에서 수많은 데이터를 처리하고 이에 대한 최신의 모델에 있어 처리속도는 중요합니다.

  3. 모듈성 : 새로운 업무(계층의 새로운 역할)와 환경(구동환경)은 유연성과 확장성을 필요로 합니다.

  4. 공개성 : 과학적이고 응용된 진보기술들은 공동의 코드와 참조 모델들에 대한 재생산성이 좋아야합니다.

  5. 공동성 : 학문적 연구, 초기 프로토타입 그리고 산업분야의 응용품들 모두가 합동 연구회와 BSD-2프로젝트의 분야로 강하게 공유하고 있습니다.

Caffe 튜토리얼

그리고 다음과 같은 항목을 이 튜토리얼에서 알려주고자 합니다.

2017.11.29-이 자료들은 후에 재해석작업을 거치고, 좀 더 유연성을 가지도록 설명을 덧붙일 것입니다.

  1. Nets, layers, Bolbs : ‘Caffe’ 모델의 분석
  2. Forward / Backward : 계층화로 구성된 모델의 필수적인 연산
  3. Loss : 학습되어야할 업무(계층)를 손실로 정의한다.
  4. [Solver] (https://github.com/ys7yoo/BrainCaffe/wiki/Caffe-Tutorial-:-4.Solver-(Kor)) : 해결사는 모델 최적화를 수행해준다.
  5. Layer Catalogue : 계층은 최신모델에 대한 계층을 포함하는 ‘Caffe’ 카탈로그인 모델링과 연산의 기본단위
  6. Interfaces : 커맨드 라인, Python, Matlab Caffe를 사용한다.
  7. Data : 모델 입력에 대하여 어떻게 caffe화를 할 것인가
  8. Caffeinated Convolution : 어떻게 Caffe가 컨볼루션을 계산할까 (심화내용)

심층학습 (Deeper Learning)

우리가 다루는 튜토리얼을 수행하는 심층학습에 대한 이해에 도움이 될 만한 참고사항이 온라인상에 많이 공개되어 있습니다. 이는 입문사항과 발전된 요소, 배경지식과 역사 그리고 기술을 다룹니다. CVPR’14에서 시각에 대한 심층학습(Deep Learning)에 대한 튜토리얼은 연구자들이 참고하기 좋은 튜토리얼입니다. 여러분들이 Caffe 튜토리얼로부터 실제 기반과 작동, 프레임워크를 알게된다면, CVPR’14 tutorial에서 향상된 연구방향과 핵심적인 아이디어를 탐구할 수 있을 것입니다. 이 입문서는 Michael Nielsen에 의한 신경망과 심층학습을 무료 온라인 드래프트로 제공합니다. 실제로 신경망과 ‘backpropagation’이 작동하는 방법을 다루는 챕터들이 이 분야가 처음이라면 도움이 될 것입니다. 이러한 학문적 튜토리얼은 기계학습과 영상분야의 연구자들을 위한 심층학습에 대해 다룹니다. 코드와 회로상에서 신경망에 대한 해석으로, Andrej Karpathy (Stanford)가 작성한 프로그래머의 관점으로 이해하는 신경망들를 참고해보세요!