Steady Seller

C++와 CUDA C로 구현하는 딥러닝 알고리즘 Vol.1 [Restricted Boltzman Machine의 이해와 Deep Belief Nets 구현]

  • 원서명Deep Belief Nets in C++ and CUDA C: Volume 1: Restricted Boltzmann Machines and Supervised Feedforward Networks (ISBN 9781507751473)
  • 지은이티모시 마스터즈(Timothy Masters)
  • 옮긴이이승현
  • ISBN : 9788960778580
  • 30,000원
  • 2016년 04월 28일 펴냄
  • 페이퍼백 | 288쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

저자 홈페이지: timothymasters.info
요약

이 책은 인공지능 기술에서 가장 중심에 해당하는 딥러닝 알고리즘의 핵심인 ‘Deep Belief Network’를 ‘CUDA’와 함께 다루면서 딥러닝의 구조와 원리를 이해하고, 이러한 알고리즘이 GPGPU에서 동작하기 위해 어떠한 개념과 기법들이 적용되고 있는지 확인해볼 수 있는 책이다.

이 책에서 다루는 내용

Deep Belief Nets 패러다임에 대한 학습 동기를 제공한다.

대부분의 일반적인 Deep Belief Nets의 구성 요소들을 위한 중요한 함수와 수식들을 제시하고, 정당성에 대해 연구한다.

일반적인 Deep Belief Nets 패러다임을 위한 훈련, 실행, 분석 알고리즘들을 언어 독립적인 형태로 제공한다.

이 책에 수록돼 있는 DEEP 프로그램의 상세한 사용자 매뉴얼은 홈페이지(TimothyMasters.info)에서 무료로 다운로드할 수 있다. 이 책에서는 이 프로그램의 내부적인 동작 원리를 상세하게 다룬다.

여러 가지 필수적인 Deep Belief Nets 알고리즘을 구현한 C++ 코드를 제공한다. 윈도우상에서 실행되는 멀티스레드 버전의 구현물과 더불어 nVidia 비디오카드의 슈퍼 컴퓨팅 성능을 활용할 수 있도록 CUDA C 기반으로 구현한 코드도 제공한다.

이 책의 대상 독자

이 책은 신경망에 대해 이미 기본적인 지식이 있으며, Deep Belief Nets에 대해 학습하고 실험해보면서 DEEP 프로그램도 구현해보고자 하는 독자를 대상으로 한다.

이 책의 구성

1장, '소개'에서는 다중 레이어 피드포워드 신경망에 대해 알아보고 Deep Belief Nets란 무엇인지 알아본다.

2장, '감독 피드포워드 신경망'에서는 오차 역전파에 대해 알아보고 멀티스레드를 지원하는 CUDA 기반의 기울이 연산 코드에 대해 알아본다.

3장, '제한된 볼츠만 머신'에서는 RBM(Restricted Boltzmann Machine)의 특이점을 알아보고, 최대 발생 가능 훈련에 대해 알아본다.

4장, '탐욕적인 훈련'은 훈련 알고리즘에 대해 알아 본 후, 생성적 샘플링에 대해 다룬다.

5장, 'DEEP 사용 매뉴얼'에서는 개략적인 DEEP 1.0 프로그램의 사용 매뉴얼을 소개한다.

저자/역자 소개

지은이 소개

티모시 마스터즈(Timothy Masters)

수리 통계학 분야에서 수치 계산(numerical computing) 전공으로 박사학위를 받았다. 그 이후 독립적인 컨설턴트로서 정부와 산업 기관에서 지속적인 경력을 쌓았다. 초기 연구 분야는 고고도(high-altitude) 촬영 사진의 자동 특징(feature) 추출과 관련된 것들이며, 홍수와 가뭄 예측, 숨겨진 미사일 저장탑 탐지, 위협적인 군사용 차량 확인 등의 다양한 애플리케이션들을 개발했다. 그 후에는 침생검(needle biopsies)상에서 유익한 세포와 유해한 세포를 구별해내는 알고리즘 개발을 위해 의료 연구원으로 근무했다. 이후 12년 동안, 주로 자동화된 경제 마켓 트레이딩 시스템을 평가하기 위한 알고리즘을 개발했다. 지금까지 예측 모델을 실무에 적용하는 방법에 대한 내용으로 『Practical Neural Network Recipes in C++』(Academic Press, 1993), 『Signal and Image Processing with Neural Networks』(Wiley, 1994), 『Advanced Algorithmsfor Neural Networks』(Wiley, 1995), 『Neural, Novel, and Hybrid Algorithmsfor Time Series Prediction』(Wiley, 1995), 『Assessing and Improving Predictionand Classification』(CreateSpace, 2013) 등 5권의 저서들을 출판했다.

이 책에서 활용하는 코드는 저자의 홈페이지 TimothyMasters.info에서 다운로드할 수 있다.

옮긴이의 말

4 전, 우연히 처음 데이터 마이닝 분야를 접하게 된 이후 줄곧 데이터 속에서 특정한 패턴을 찾아내는 기법들이 얼마나 놀라운 속도로 발전하고 있는 지 구경하는 것만으로도 상당한 재미가 있었다. 예전에는 ‘인공지능’이란 말이 그저 스타크래프트와 같은 게임 소프트웨어를 만드는 데에만 국한돼 사용되는 것 같았지만, 요즘에는 부쩍 자동차 소프트웨어나 사용자와 대화해주는 소프트웨어, 주식 거래 자동화 소프트웨어, 바이오인포매틱스 등에 활발하게 적용되면서 왠지 모를 보람을 느끼고 있다. 이 책은 이러한 인공지능 기술에서 가장 중심에 해당하는 ‘딥러닝’ 알고리즘의 핵심인 ‘Deep Belief Network’를 ‘CUDA’와 함께 다룸으로써 딥러닝의 구조와 원리를 이해하고, 이러한 알고리즘이 GPGPU에서 동작하기 위해 어떠한 개념과 기법들이 적용되고 있는지 확인해볼 수 있는 좋은 진입점이라 할 수 있다. 나의 좁은 시각으로 보면 알파고나 구글카의 자율 주행 기술들에 딥러닝이 적용되는 것은 그야말로 시작에 불과한 것 같다. 딥러닝이 빅데이터의 어깨 위에 서서 이 세상이 돌아가는 역학적 원리를 학습하기 시작한다면 이 알고리즘의 본 면모가 제대로 드러날 것 같다. 요즘 '구글라이프'라는 말을 종종 듣곤 하는데, 이러한 기술을 우리나라 엔지니어들도 빠르게 습득해 이런 볼만한 구경거리를 그저 바라보고만 있지 말고 직접 무대에 올라서서 같이 퍼포먼스를 보여줬으면 한다. 나도 아직 딥러닝의 모든 것을 제대로 이해하고 있는 것은 아니기 때문에 번역에 어려움이 많았지만, 이렇게 Vol.1을 마치고 나니 한숨 돌릴 것 같다. 혹시나 이 책을 읽고 딥러닝 기술을 실시간 영상처리에 적용하는 데(되도록 자동차 분야에 국한해) 관심이 있는 독자가 있다면 기꺼이 교류하고 싶다. 아무쪼록 Vol.1으로 독자와 인사드리게 돼 큰 영광이며, 차후 관련 서적들을 통해 지속적으로 인사드릴 수 있었으면 한다. 참고로, 이 책을 번역하면서 나름대로 그림을 그리며 정리한 자료가 있는데, 원하는 독자는 나의 LinkedIn(kr.linkedin.com/in/seunghyun-lee-0845528b)에 접속하면 찾을 수 있을 것이다. 독자들이 이 책을 읽으면서 자료를 함께 참고해 학습 시간을 절약할 수 있었으면 한다.

옮긴이 소개

이승현

한국 항공대학교 기계공학부를 졸업하고, 삼성 소프트웨어 멤버십과 산업통상자원부 소프트웨어 마에스트로를 수료했다. 현재 MDS 테크놀로지에서 자동차의 ISO26262 국제 안전 표준과 AUTOSAR 관련 기술 지원을 담당하고 있다. 한양대학교 컴퓨터공학과에서 석사과정을 밟고 있으며, 딥러닝 기반 실시간 영상처리 기술을 자동차 소프트웨어에 응용하는 연구를 하고 있다. 훌륭한 임베디드 개발자가 되기 위해 항상 공부하며, 좋은 원서를 하루라도 빨리 우리글로 옮겨 국내 개발자들에게 도움을 주고자 번역계에 발을 들였다. 에이콘출판사에서 펴낸 『데이터 마이닝 Data Mining』(2013), 『윈도우폰 7 게임 프로그래밍』(2012), 『안드로이드 앱 인벤터』(2013)가 있다.

목차

목차
  • 1 소개
    • 이 책의 대상 독자
    • 다중 레이어 피드포워드 신경망 개요
    • Deep Belief Nets란 무엇이며, 왜 이 모델이 좋은 것인가?

  • 2 감독 피드포워드 신경망
    • 오차 역전파
      • SoftMax 출력 계산 기법을 이용한 분류 작업
    • 기울기 계산 수행 소스코드
    • 가중치 패널티
    • 멀티스레드를 지원하는 기울기 연산
    • CUDA 기반의 기울기 연산 코드
      • 기본 아키텍처
      • 간단한 예
      • 초기화
      • 은닉층 뉴런 활성화
      • 출력 뉴런 활성화
      • oftMax 출력
      • 출력 델타
      • 출력 기울기
      • 첫 번째 은닉층의 기울기
      • 중간 은닉층들의 기울기
      • 기울기 가져오기
      • 평균 제곱 오차 연산의 효율을 향상 시켜주는 절감 알고리즘
      • 로그 발생 확률 연산의 효율을 향상시켜주는 절감 알고리즘
      • 총정리
    • 기본적인 훈련 알고리즘
      • 첫 가중치를 구하기 위한 담금질 모사 알고리즘
      • 최적의 출력 가중치 계산을 위한 특이값 분해
      • 통계적 기울기 하강
      • 기울기 최적화의 켤레 개념

  • 3 제한된 볼츠만 머신
    • 제한된 볼츠만 머신이란?
      • 재구조화 오차
    • 최대 발생 가능 훈련
      • 대조적 발산
      • 가중치 패널티
      • 희소성 유도
      • 초기 가중치 찾기
      • 은닉 뉴런 바이어스
      • 가시 뉴런 바이어스
      • 재구조화 오차 구현 코드
      • 멀티스레드 기반의 초기 가중치 선택
      • 통계적 기울기 하강 알고리즘의 기본 원리
      • 핵심 알고리즘
      • 배치 단위로 에포크 분할
      • 에포크 뒤섞기
      • 학습률과 모멘텀 업데이트
      • 수렴 값 결정
    • 멀티스레드 기반의 RBM 훈련 알고리즘 구현 코드
    • CUDA 기반의 RBM 훈련 코드
      • 초기화와 캐시 라인 매칭
      • 훈련 데이터 가져오기
      • 가시 레이어에서 은닉 레이어로
      • 은닉 레이어에서 가시 레이어로
      • 기울기 길이와 내적 연산의 효율성을 향상시켜주는 알고리즘
      • 입력 바이어스 업데이트
      • 은닉 뉴런 바이어스 업데이트
      • 가중치 업데이트
      • 총정리
      • 타이밍
      • 가중치 업데이트 분석
      • 가시 레이어에서 은닉 레이어로의 분석
      • 은닉 레이어에서 가시 레이어로의 분석
      • 향상된 훈련 알고리즘과 향후 버전

  • 4 탐욕적인 훈련
    • 생성적 샘플링

  • 5 DEEP 사용 매뉴얼
    • 메뉴 옵션
      • 파일 메뉴 옵션
      • 테스트 메뉴 옵션
      • 화면 출력 메뉴 옵션
    • 데이터베이스 읽어 들이기
    • MNIST 이미지 읽어 들이기
    • MNIST 라벨 읽어 들이기
    • 활성화 파일 작성
    • 모든 데이터 삭제
    • 모델 아키텍처
    • 데이터베이스 입력과 목표치
    • RBM 훈련 파라미터
    • 감독 훈련 파라미터
    • 훈련
    • 테스트
    • 분석
    • 수용 영역
    • 생성적 샘플

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[ p66 16행 ]
그림상에는 5개의 열이 있으므로 4개에 걸쳐 0이 된다 → 그림상에는 5개의 열이 있으므로 0에서 4까지 할당한다

[ p67 5행 ]
그림상에서는 6개의 행이 있으므로 0부터 5 사이의 숫자를 할당한다 → 그림상에서는 6개의 행이 있으므로 0에서 5까지 할당한다