밑바닥 부터 시작 하는 딥 러닝 | [딥러닝I] 1강. 퍼셉트론 188 개의 가장 정확한 답변

당신은 주제를 찾고 있습니까 “밑바닥 부터 시작 하는 딥 러닝 – [딥러닝I] 1강. 퍼셉트론“? 다음 카테고리의 웹사이트 https://you.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://you.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 한경훈 이(가) 작성한 기사에는 조회수 17,968회 및 좋아요 178개 개의 좋아요가 있습니다.

밑바닥 부터 시작 하는 딥 러닝 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [딥러닝I] 1강. 퍼셉트론 – 밑바닥 부터 시작 하는 딥 러닝 주제에 대한 세부정보를 참조하세요

교재 : 밑바닥부터 시작하는 딥러닝 (저자 : 사이토 고키 / 번역 : 이복연 / 출판사 : 한빛미디어)
https://www.hanbit.co.kr/store/books/look.php?p_code=B8475831198
코드 : https://github.com/WegraLee/deep-learning-from-scratch
강좌 홈페이지 : https://sites.google.com/site/kyunghoonhan/deep-learning-i
PPT 이미지 출처
p. 2 : https://www.youtube.com/watch?v=W8_ktKKyW5A

밑바닥 부터 시작 하는 딥 러닝 주제에 대한 자세한 내용은 여기를 참조하세요.

밑바닥부터 시작하는 딥러닝 – 교보문고

밑바닥부터 시작하는 딥러닝 파이썬으로 익히는 딥러닝 이론과 구현. klover0 (0건). 사이토 고키 개앞맵시. 한빛미디어. 2017.01.03. 베스트 컴퓨터/IT 51위.

+ 여기에 표시

Source: www.kyobobook.co.kr

Date Published: 3/25/2021

View: 6391

밑바닥부터 시작하는 딥러닝 – YES24

밑바닥부터 시작하는 딥러닝. : 파이썬으로 익히는 딥러닝 이론과 구현. 사이토 고키 저 / 개앞맵시 역 | 한빛미디어 | …

+ 여기에 표시

Source: www.yes24.com

Date Published: 3/28/2021

View: 5543

밑바닥부터 시작하는 딥러닝 – 한빛출판네트워크

밑바닥부터 시작하는 딥러닝 · 저자 : 사이토 고키 · 번역 : 개앞맵시(이복연) · 출간 : 2017-01-03 · 페이지 : 312 쪽 · ISBN : 9788968484636 · 물류코드 :2463.

+ 여기를 클릭

Source: www.hanbit.co.kr

Date Published: 9/11/2021

View: 5024

밑바닥부터 시작하는 딥러닝 – 알라딘

밑바닥부터 시작하는 딥러닝 파이썬으로 익히는 딥러닝 이론과 구현. 사이토 고키 (지은이), 개앞맵시 (옮긴이) 한빛미디어 2017-01-03. 정가. 24,000원.

+ 여기에 표시

Source: www.aladin.co.kr

Date Published: 6/4/2021

View: 627

[밑바닥부터 시작하는 딥러닝] 정리 링크 공유

파이썬으로 익히는 딥러닝 이론 및 구현을 다루는 가장 유명한 책인 [밑바닥부터 시작하는 딥러닝] 내용 및 코드 정리된 링크 공유합니다.

+ 자세한 내용은 여기를 클릭하십시오

Source: rladuddms.tistory.com

Date Published: 8/12/2021

View: 2929

밑바닥부터 시작하는 딥러닝 2 – 도서 – 인터파크

밑바닥부터 시작하는 딥러닝 2. 파이썬으로 직접 구현하며 배우는 순환 신경망과 자연어 처리. 사이토 고키(齋藤康毅) 저개앞맵시 역 한빛미디어 2019.05.01.

+ 여기에 표시

Source: mbook.interpark.com

Date Published: 11/29/2022

View: 876

밑바닥부터 시작하는 딥러닝 3 – 리디

코드 3줄이 딥러닝 프레임워크가 되는 마법 이 책은 ‘밑바닥부터’ 직접 만들어보며 즐겁게 딥러닝을 익히는 시리즈의 장점을 그대로 따랐습니다.

+ 여기를 클릭

Source: ridibooks.com

Date Published: 9/22/2022

View: 8358

[밑바닥부터 시작하는 딥러닝] CH.3 신경망

[밑바닥부터 시작하는 딥러닝] CH.3 신경망. Minding 2021. 3. 15. 11:09. 320×100 … 계단 함수는 0과 1만 반환하는 반면, 시그모이드 함수는 실수를 반환.

+ 자세한 내용은 여기를 클릭하십시오

Source: minding-deep-learning.tistory.com

Date Published: 2/26/2022

View: 3182

밑바닥부터 시작하는 딥러닝 – 학습 정리 – velog

밑바닥부터 시작하는 딥러닝 1장 · post-thumbnail. 파이썬에서는 클래스를 직접 정의해서 개발자가 독자적인 자료형을 만들 수 있다. init 이라는 특별한 메서드를 …

+ 자세한 내용은 여기를 클릭하십시오

Source: velog.io

Date Published: 3/2/2022

View: 8170

목록 – Deep Learning/밑바닥부터 시작하는 딥러닝 1 (11)

‘Deep Learning/밑바닥부터 시작하는 딥러닝 1’ 카테고리의 글 목록.

+ 여기에 자세히 보기

Source: koreanfoodie.me

Date Published: 10/4/2022

View: 8760

주제와 관련된 이미지 밑바닥 부터 시작 하는 딥 러닝

주제와 관련된 더 많은 사진을 참조하십시오 [딥러닝I] 1강. 퍼셉트론. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[딥러닝I] 1강. 퍼셉트론
[딥러닝I] 1강. 퍼셉트론

주제에 대한 기사 평가 밑바닥 부터 시작 하는 딥 러닝

  • Author: 한경훈
  • Views: 조회수 17,968회
  • Likes: 좋아요 178개
  • Date Published: 2020. 7. 7.
  • Video Url link: https://www.youtube.com/watch?v=8Gpa_pdHrPE

밑바닥부터 시작하는 딥러닝(원서/번역서: [해외]ゼロから作るDEEP LEARNING PYTHONで學ぶディ-プラ-ニングの理論と實裝)

요즘 딥러닝의 인기는 정말… 높은 것 같아요. 여러 스터디에 나가보면 거의 모든 분들이 관심이 있으신 것 같습니다. 알파고랑 이세돌의 격돌도 잠시, 작년 겨울에 나온 구글 번역기의 놀라운 성능은 기계학습 전공자들의 눈을 모두 딥러닝으로 쏠리게 만든 것 같습니다.그래서, 저도 텐서플로 딥러닝 카페에서 이런저런 정보를 얻어가던 중, 한빛 미디어의 밑바닥부터 시작하는 딥러닝 출간 소식과 사람들의 호평을 보고 좋은 느낌을 가지고 있었습니다.풉풉… 2주전부터 이 책이 제 손에 들어왔습니다. 저랑 같이 이 책이 여러가지 장단점을 살펴볼까요?책 소개를 하면 “누구를 위한 책인가?” 저도 항상 생각하게 됩니다.결론부터 말하면 : 김성훈 교수의 : 모두를 위한 머신러닝/딥러닝 강의 의 시즌 1 – 딥러닝의 기본 (종강) 비디오 리스트 를 들으신 분들이 보시면 좋습니다.사실 대한민국의 대부분 딥러닝 입문자들은 김성훈 교수님 강의부터 듣게 되죠. ㅎㅎ 딥러닝 시작하기에 가장 좋은 입문 동영상 입니다. 그래서 딥러닝 입문후 계속 공부할지 말지 어느 수준을 책을 읽어야 할지 고민하게 될 때 김성훈 교수님 강의가 너무 어렵다면 딥러닝 첫걸음이나 텐서플로 첫걸음 같은 좀 더 쉬운 입문서를 다시 보고 오시는 것이 좋습니다.어느 정도 이해가 되는데, 김 성훈 교수님 PDF에 강의 내용을 정리해서 여러번 반복 복습하고 싶다면, 이 때 이 책이 딱입니다. 김 성훈 교수님은 텐서플로를 위주로 설명해주시는데, 밑바닥부터 시작하는 딥러닝은 텐서플로 외에도 여러 딥러닝 도구에도 사용할 수 있도록 기본 이론을 위주로 아주 자세하게 설명합니다.김성훈 교수님의 동영상 + 밑바닥부터 시작하는 딥러닝의 조화 : 기초 다지기에 좋아요.책을 사서 처음 보시면, 김성훈 교수님 강의 동영상이랑 순서가 조금 달라서 당황하실 수도 있어요. 퍼셉트론, XOR 이런 주제는 동영상에서는 중반 부분에 나오는데, 이 책은 초반에 바로 시작…그래서… 음 뭔가 어려울 것 같다는 생각이 들지만, 동영상을 듣고 이 책을 읽게 되면, 저자의 의도를 이해하게 됩니다. 그리고 동영상에서 XOR 문제를 한 번 다루었기 때문에, 책 초반에 읽어도 어렵지는 않아요.그런데, 태어나서 난생 처음으로 딥러닝을 하시려는 분들은 이 책을 바로 읽으시면 조금 힘드실 수도 있어요. 왜 이것을 이해해야하는지 그것을 이해하기 어려울수도 있으니까요.동영상 먼저 보세요. 동영상 강의가 책으로는 이해하기 어려운 방향성을 잘 잡아주기도 하거든요.저자는 친절하게 챕터1에서 파이썬 기초 문법을 설명해 놓았습니다. 제 생각에는 별로 도움이 안 됩니다. 파이썬을 아시는 분들은 간단하게 체크하는 정도에서 읽어보시면 좋겠지만, 파이썬이 처음이라면, 파이썬 문법이 간단하므로, 다른 단행권 책이나 인터넷 자료, 강의를 보시는 것이 좋습니다. 저는 처음에 제 윈도우에 matplot가 실행이 안되어서, 실습 없이 소스 코드만 읽고 이해했는데, 소스 코드가 별로 어렵지 않아서 천천히 읽어면서 이해했습니다.이글을 쓰기 전, ㅎㅎ matplot 메서드 불러오는데, 성공했습니다. 윈도우 10이랑 matplot 실행에 오류가 좀 있었네요.딥러닝을 하다보면 정말 배열이나 행렬이 많이 나옵니다. 이 부분이 약하면 다른 딥러닝 소스 코드 이해하는데 어려움이 많습니다.그런데 대부분의 책들은 전공자들이 읽을꺼라고 생각해서 그런지 넘파이 같은 메서드를 설명하지 않고, 바로 코드 구현에 들어갑니다. 초심자에게는 무작정따라하기가 시작되는 거죠.이 책은 친절하게 넘파이 같은 메서드를 소개합니다. 입문자들이 무엇을 어려워하는지 알고 서술한 느낌입니다. 이런 친절함이 책을 읽다보면 중간중간에 나옵니다.밑마닥부터 시작하는 딥러닝이 친절한 이유 중에 하나가 위 이미지에서 보듯이, 텍스트 뿐만 아니라 도표, 그래프 등 다른 설명 도구를 이용해서 설명을 충분히 한다는 점입니다.이미지 설명도 위의 그림과 같이 원 안과 화살표 위에 필요한 인자들을 넣어 입문자들이 더욱 쉽게 이해할 수 있도록 배려하고 있습니다. 보통의 책들은 원이랑 화살표만 있는 경우가 대부분이죠. 그냥 썩~~ ͛어보면 어렵다고 생각할 수도 있지만, 이미지 아래에 충분한 설명이 있으므로, 천천히 읽어보면 이해할 수 있습니다.저처럼 오랫동안 수학을 보지 못한 분들을 위해 행렬을 어떻게 계산하는지 상세하게 설명합니다. 배열과 행렬은 오래전에 수학을 그만 둔 인문계분들에게는 참 어렵게 느껴질 수 있지만, 이것을 못하면 딥러닝은 더욱 어려워지므로, 책 내용을 하나하나 천천히 공부하셔야 합니다.하하 엄청 어려워 보이지 않나요? 책으로 공부하시면 다 이해가 되시므로 겁먹지 마세요. 일부러 이 책에서 매우 복잡한 이미지 중 한를 보여드립니다. 저도 처음볼 때 깜짝 놀랐는데, 책 아래 설명을 보면 이해가 됩니다.그래프 뿐만 아니라, 개별 내용들도 풍부합니다. 김성훈 교수님의 동영상에서 짧게 언급된 부분들도 책에서는 충분히, 체계적으로 서술되어 있으므로, 강의와 책을 연결시키면 훌륭한 학습서가 될 것 같습니다.딥러닝의 CNN 등을 할 때 제일 헤깔리는 부분 중의 하나가 배열입니다. 이 책 최대 장점 중의 하나가 배열을 자세히 설명한다는 점입니다. 그리고 어떤 인자들을 서로 일치시켜야 하는지 상세하게 설명하므로, 다음에 본인이 직접 딥러닝의 층을 만들때 어느 부분을 주의해야 하는지 사전에 충분히 인지할 수 있습니다.김성훈 교수님의 강의 때 역전파의 성공이 딥러닝의 역사에서 정말 중요한 한 계기가 되었음을 알게 되었는데, 그 역전파를 매우 상세하게 설명합니다. 위 이미지를 잘 기억해 놓으시면 텐서플로로 딥러닝 할 때 노드와 엣지 구성을 어떻게 하고, 그것이 실제로 어떻게 동작하는지, 마치 텐서보드에서의 동작 구현을 보듯이, 공부하실 수 있습니다.앞의 이미지가 순전파이고, 이 이미지가 역전파입니다. 기계학습에서 최적의 파라미터를 찾아가는 마법같은 일이 이 역전파에서 일어난다는 것을 이해하시면 이 책의 구성이 정말 탄탄하다고 느끼실 수 있을꺼에요.딥러닝 책 몇 권을 읽었는데, 이렇게 부분부분 상세하게 입문자 수준에서 가려운 곳을 해결해주는 책은 없었습니다(아직까지 ㅎㅎ).이론적인 순서와 내용이 필요하면 건너뛰지 않고 한 단계, 한 단계 모두 설명합니다. 똑 같은 설명의 반복 같지만, 입문자 입장에서는 완결성 높은 느낌이 듭니다. 가끔 IT 기술서을 읽다가 보면 나중에는 다 알게 되지만, 처음에는 IT 분야에서만 통용되는 용어들이 설명없이 너무 자주 나와서 책 읽는데 힘드는데, 이 책은 되도록이면 건너뛰지 않고 설명합니다.딥러닝의 발전 속도가 어마어마 빠른데, –” 자고 일어나면 새로운 이론들이 나오고 있는 것 같아요. 이 책에서는 다양한 최선의 기법들을 많이 설명하는 것 같습니다. 그리고 저자의 분석도 있어서, 각 경우에 맞게 선택할 수 있도록 안내하고 있습니다.CNN 에 대한 설명은 많지는 않지만, 알맹이는 모두 잘 설명되어 있습니다. 이미지들의 계산 결과를 하나하나 따라하다보면 CNN 의 대략적인 감을 잡을 수 있습니다.보통 책들이 딥러닝 역사부터 설명하는데, 이 책은 제일 뒷편에 나옵니다. 하하 과거 역사가 정말 너무 오래전 역사가 아니라, 바로 얼마전의 역사이므로, 딥러닝의 시작하는 우리에게는 현재진행형처럼 느껴지는 이야기들을 하고 있습니다. 딥러닝의 방향성을 잡기에 좋습니다.딥러닝이 최근 눈길을 끌고, 워낙 다양한 분야에 급속하게 적용되다보니, 여러 좋은 책들이 막나오기 시작하는 것 같습니다. 저로 주로 한글로 입문서들을 주로 읽었는데, 이번에 읽은 밑바닥부터 시작하는 딥러닝은 제가 읽은 입문서들보다는 좀 더 딥러닝을 깊게 자세하게 이해하는 계기가 된 책인것 같습니다.여러 다양한 경로를 통해 딥러닝에 대해서 배우고 접했던터라, 이 블로그에서 설명한 제 생각이 틀릴수도 있지만,마지막으로 말씀드리면 김성훈 교수님의 동영상 강의와 밑바닥부터 시작하는 딥러닝으로 시작하시면 딥러닝 세계가 대충 어떻게 돌아가는지 이해하실 수 있을 것 같습니다.딥러닝의 세계로 초대합니다.이 서평은 교재를 제공받아 작성되었으며, Yes24, 교보문고 사이트에도 같이 등록됩니다. 닫기

밑바닥부터 시작하는 딥러닝

출판사 리뷰

파이썬으로 익히는 딥러닝 이론과 구현

새로운 지식을 배울 때 설명만 들어서는 석연치 않거나 금방 잊어버리게 됩니다. 그래서 무엇보다 ‘직접 해보는 것’이 중요합니다.

이 책은 딥러닝의 기본을 ‘이론 설명’과 ‘파이썬 구현 코드’라는 투 트랙으로 설명합니다. 각 장은 주제 하나를 설명한 후 그것을 실습할 수 있도록 꾸몄습니다. 즉, 실행되는 소스 코드를 준비했습니다. 직접 실행해보세요! 소스 코드를 읽으면서 스스로 생각하고 그 생각을 반영해 실험하다 보면 확실하게 자기 것으로 만들 수 있습니다. 여러 실험을 해보면서 겪는 시행착오 역시 큰 자산이 될 것입니다.

_예제 소스: https://github.com/WegraLee/deep-learning-from-scratch

★ 누구를 위한 책인가?

_ 외부 라이브러리는 최소한만 이용하고 파이썬을 사용해 딥러닝 프로그램을 처음부터 구현합니다.

_ 파이썬이 처음인 사람도 이해할 수 있도록 파이썬 사용법도 간략히 설명합니다.

_ 실제 동작하는 파이썬 코드와 독자가 직접 실험할 수 있는 학습 환경을 제공합니다.

_ 간단한 기계학습 문제부터 시작하여 궁극에는 이미지를 정확하게 인식하는 시스템을 구현합니다.

_ 딥러닝과 신경망 이론을 알기 쉽게 설명합니다.

_ 오차역전파법(backpropagation)과 합성곱(convolution) 연산 등 복잡해 보이는 기술을 구현 수준에서 이해할 수 있도록 설명합니다.

_ 하이퍼파라미터 결정 방식, 가중치 초깃값 등 딥러닝을 활용하는 데 도움이 되는 실용적인 기술을 소개합니다.

_ 배치 정규화, 드롭아웃, Adam 같은 최근 트렌드를 설명하고 구현해봅니다.

_ 딥러닝이 왜 뛰어난지, 층이 깊어지면 왜 정확도가 높아지는지, 은닉층이 왜 중요한지와 같은 ‘왜’에 관한 문제도 다룹니다.

_ 자율 주행, 이미지 생성, 강화학습 등, 딥러닝을 응용한 예를 소개합니다.

★ 누구를 위한 책이 아닌가?

_ 딥러닝 분야의 최신 연구에 대해서는 자세히 다루지 않습니다.

_ 카페(Caffe), 텐서플로(TensorFlow), 체이너(Chainer) 등의 딥러닝 프레임워크 사용법은 설명하지 않습니다.

_ 딥러닝, 특히 신경망에 관한 아주 상세한 이론까지는 담지 않았습니다.

_ 딥러닝의 정확도를 높이기 위한 튜닝은 자세히 설명하지 않습니다.

_ 딥러닝 성능을 높여주는 GPU 기술은 구체적으로 다루지 않습니다.

_ 주로 이미지 인식을 다룹니다. 자연어 처리, 음성 인식 등의 사례는 다루지 않습니다.

밑바닥부터 시작하는 딥러닝

스탠포드 CS231n 강좌의 핵심과 저자의 직관이 잘 담긴 책으로 유명하다. 텐서플로우 등의 프레임워크에 의존하지 않고 파이썬과 넘파이 만으로 코드를 구현했다는 점이 상당히 매력적이다. 동작원리를 더 명확히 이해하려면 코드 레벨에서 들여다 볼 필요가 있는데 이 책은 아주 잘 짜여진 코드를 제시하며 보다 깊은 이해를 유도한다.

고전적인 퍼셉트론으로 2장이 시작된다. (1장은 파이썬과 넘파이의 기본적인 소개이다.)

가중치(weight)와 편향(bias)에 대한 설명에서 약간의 전율을 느낄 수 있었다. 대강의 개념은 알고 있었으나 이 책의 설명을 통해 시야가 더 넓어진 느낌이다.

가중치는 퍼셉트론으로 들어오는 입력 신호가 결과에 주는 영향력을 조절하는 요소로 작용한다는 점과

태초의 퍼셉트론 식에서 우변에 존재하던 임계값(θ)을 좌변으로 넘기면서 그 값이 자연스레 편향이 되고 우변의 기준은 0으로 고정이 되었다는 설명을 통해 가중치와 편향의 개념을 더욱 확실히 다질 수 있었다.

3장의 내용은 퍼셉트론에서 신경망으로 발전하게 된 과정을 살펴본다. 태초에 사용되었던 계단 함수의 한계점과 그를 극복한 시그모이드 함수의 도입을 통해 신경망은 더욱 풍부한 표현력을 갖추게 되었다는 점을 밝힌다. 왜 시그모이드 함수를 사용하는가의 의문점은 완전히 해소된다.

4장에서는 경사하강법이 소개된다. 학습의 지표로 정확도가 아닌 오차를 사용하게 된 배경과 오차를 최소화하는 최적화 과정에서 기울기, 즉 미분값이 길잡이로 사용되게 된 자세한 설명이 나온다. 이 책의 설명만큼 깊고 명확한 이해를 유도할수는 없을것 같다. 오차함수와 경사하강법에 대한 이해의 범위가 넓어질뿐만 아니라 왜 이것이 튀어나오는가에 대한 궁금점이 해소된다. 처음 공부를 시작할 당시엔 미분이 갖는 의미를 다소 과소평가했던것 같다. 이 책을 통해 미분과 기울기라는 개념을 완전히 다시 생각하게 되었다.

필자는 이 책의 꽃을 5장이라고 생각한다. 딥러닝의 존속과 강하게 결부되는 개념인 “오차역전파”를 아름다울정도로 서술한 장이다. 계산그래프를 통해 수치적으로 접근을 하며 설명이 시작된다. 곱셈과 덧셈뿐인 간단한 연산으로 오차역전파의 과정을 되짚는다. 너무나도 손쉬운 연산의 연속으로 난제로 꼽히던 깊은 신경망의 학습을 가능케 한 이 아이디어가 경이롭기까지 하다. 마빈 민스키 교수님도 후학의 성취를 보면 놀라워하실 것이다.

6장에서는 학습 관련 테크닉들이 소개된다. 경사하강법이 가지던 단점을 극복한 모멘텀, AdaGrad, Adam 알고리즘이 소개되는데 필자가 너무나도 갈망하던 내용이 소개되어서 정말 반가웠다. 특히 요새는 Adam이 많이 사용되는데 그토록 유명한 경사하강법을 놔두고 왜 이걸 쓸까란 궁금증이 항상 있었다. 이 책의 설명은 그 궁금점을 완전히 해소해준다. 저자의 깊은 이해와 직관력에 다시금 감탄했던 대목이다. 또한 가중치 초기값에 대한 설명도 압권이다. 기존의 초기화 방식으로는 기울기 소실 문제에 직면할 수 밖에 없는 필연성을 보여주고 그를 해결한 방안을 소개한다. Xavier 초기값과 He 초기값이 그것이다.

CNN을 다루는 7장도 숨쉴틈 없이 읽어봤다. 기본적인 설명은 다른 책을 통해서도 얻을 수 있다. 그러나 이 책에서는 통찰력과 직관력을 얻을 수 있다. “합성곱 계층, 쉽게 말해 필터가 보고 있는게 도대체 무엇일까?” “사람과 달리 인공신경망은 도대체 이미지를 어떻게 인식하는걸까?” “깊게 형성되어 있는 합성곱 계층에서는 도대체 무슨 일이 일어나는걸까?” 이러한 의문점에 대한 속 시원한 대답을 내놓는다.

앞단의 필터는 엣지와 블롭을 추출한다. 뒤로 진행될수록 사물의 텍스쳐(질감), 의미있는 부분 등으로 고급 정보가 추출된다. 깊은 층을 타고 정보가 흐를수록 이미지에서 고급 특징을 얻어내고 신경망은 사물을 더 잘 이해하게 되는것이다. 이 정도의 설명은 쉽게 찾아볼 수 있는 것이 아니다. 컴퓨터 비전 분야에도 관심이 있기에 더 흥미롭게 읽은 대목이다.

마지막 8장에서는 딥러닝의 추가적인 연구과제와 미래를 보여준다. 정말 공부하면 할수록 더 공부할게 많아지고 어려워지는게 딥러닝 같다. 정말 끝이 없다. 그러기에 재밌다. 자율주행과 강화학습 등의 내용도 흥미로웠지만 화풍변환 기술과 GAN의 소개가 가장 기억에 남는다. GAN을 공부해야겠다 GAN..

마지막 장 마저도 보물같은 내용이 넘쳐난다. 이 책은 페이지 한장 한장이 다 좋다. 딥러닝 분야를 떠나서.. 인문, 과학, 공학 전 분야를 통틀어서 인생책이라고 말하고 싶다. 책에 포스트잇 플래그를 수십장은 붙인것 같다. 서재에 고히 모셔두고 고전명작 처럼 탐독하고 싶은 책이다.

[밑바닥부터 시작하는 딥러닝] 정리 링크 공유

파이썬으로 익히는 딥러닝 이론 및 구현을 다루는 가장 유명한 책인 [밑바닥부터 시작하는 딥러닝] 내용 및 코드 정리된 링크 공유합니다.

https://sdr1982.tistory.com/201

1장 헬로 파이썬

1.1 파이썬이란?

1.2 파이썬 설치하기

__1.2.1 파이썬 버전

__1.2.2 사용하는 외부 라이브러리

__1.2.3 아나콘다 배포판

1.3 파이썬 인터프리터

__1.3.1 산술 연산

__1.3.2 자료형

__1.3.3 변수

__1.3.4 리스트

__1.3.5 딕셔너리

__1.3.6 bool

__1.3.7 if 문

__1.3.8 for 문

__1.3.9 함수

1.4 파이썬 스크립트 파일

__1.4.1 파일로 저장하기

__1.4.2 클래스

1.5 넘파이

__1.5.1 넘파이 가져오기

__1.5.2 넘파이 배열 생성하기

__1.5.3 넘파이의 산술 연산

__1.5.4 넘파이의 N차원 배열

__1.5.5 브로드캐스트

__1.5.6 원소 접근

1.6 matplotlib

__1.6.1 단순한 그래프 그리기

__1.6.2 pyplot의 기능

__1.6.3 이미지 표시하기

1.7 정리

2장 퍼셉트론

2.1 퍼셉트론이란?

2.2 단순한 논리 회로

__2.2.1 AND 게이트

__2.2.2 NAND 게이트와 OR 게이트

2.3 퍼셉트론 구현하기

__2.3.1 간단한 구현부터

__2.3.2 가중치와 편향 도입

__2.3.3 가중치와 편향 구현하기

2.4 퍼셉트론의 한계

__2.4.1 도전! XOR 게이트

__2.4.2 선형과 비선형

2.5 다층 퍼셉트론이 출동한다면

__2.5.1 기존 게이트 조합하기

__2.5.2 XOR 게이트 구현하기

2.6 NAND에서 컴퓨터까지

2.7 정리

3장 신경망

3.1 퍼셉트론에서 신경망으로

__3.1.1 신경망의 예

__3.1.2 퍼셉트론 복습

__3.1.3 활성화 함수의 등장

3.2 활성화 함수

__3.2.1 시그모이드 함수

__3.2.2 계단 함수 구현하기

__3.2.3 계단 함수의 그래프

__3.2.4 시그모이드 함수 구현하기

__3.2.5 시그모이드 함수와 계단 함수 비교

__3.2.6 비선형 함수

__3.2.7 ReLU 함수

3.3 다차원 배열의 계산

__3.3.1 다차원 배열

__3.3.2 행렬의 내적

__3.3.3 신경망의 내적

3.4 3층 신경망 구현하기

__3.4.1 표기법 설명

__3.4.2 각 층의 신호 전달 구현하기

__3.4.3 구현 정리

3.5 출력층 설계하기

__3.5.1 항등 함수와 소프트맥스 함수 구현하기

__3.5.2 소프트맥스 함수 구현 시 주의점

__3.5.3 소프트맥스 함수의 특징

__3.5.4 출력층의 뉴런 수 정하기

3.6 손글씨 숫자 인식

__3.6.1 MNIST 데이터셋

__3.6.2 신경망의 추론 처리

__3.6.3 배치 처리

3.7 정리

4장 신경망 학습

4.1 데이터에서 학습한다!

__4.1.1 데이터 주도 학습

__4.1.2 훈련 데이터와 시험 데이터

4.2 손실 함수

__4.2.1 평균 제곱 오차

__4.2.2 교차 엔트로피 오차

__4.2.3 미니배치 학습

__4.2.4 (배치용) 교차 엔트로피 오차 구현하기

__4.2.5 왜 손실 함수를 설정하는가?

4.3 수치 미분

__4.3.1 미분

__4.3.2 수치 미분의 예

__4.3.3 편미분

4.4 기울기

__4.4.1 경사법(경사 하강법)

__4.4.2 신경망에서의 기울기

4.5 학습 알고리즘 구현하기

__4.5.1 2층 신경망 클래스 구현하기

__4.5.2 미니배치 학습 구현하기

__4.5.3 시험 데이터로 평가하기

4.6 정리

5장 오차역전파법

5.1 계산 그래프

__5.1.1 계산 그래프로 풀다

__5.1.2 국소적 계산

__5.1.3 왜 계산 그래프로 푸는가?

5.2 연쇄법칙

__5.2.1 계산 그래프에서의 역전파

__5.2.2 연쇄법칙이란?

__5.2.3 연쇄법칙과 계산 그래프

5.3 역전파

__5.3.1 덧셈 노드의 역전파

__5.3.2 곱셈 노드의 역전파

__5.3.3 사과 쇼핑의 예

5.4 단순한 계층 구현하기

__5.4.1 곱셈 계층

__5.4.2 덧셈 계층

5.5 활성화 함수 계층 구현하기

__5.5.1 ReLU 계층

__5.5.2 Sigmoid 계층

5.6 Affine/Softmax 계층 구현하기

__5.6.1 Affine 계층

__5.6.2 배치용 Affine 계층

__5.6.3 Softmax-with-Loss 계층

5.7 오차역전파법 구현하기

__5.7.1 신경망 학습의 전체 그림

__5.7.2 오차역전파법을 적용한 신경망 구현하기

__5.7.3 오차역전파법으로 구한 기울기 검증하기

__5.7.4 오차역전파법을 사용한 학습 구현하기

5.8 정리

6장 학습 관련 기술들

6.1 매개변수 갱신

__6.1.1 모험가 이야기

__6.1.2 확률적 경사 하강법(SGD)

__6.1.3 SGD의 단점

__6.1.4 모멘텀

__6.1.5 AdaGrad

__6.1.6 Adam

__6.1.7 어느 갱신 방법을 이용할 것인가?

__6.1.8 MNIST 데이터셋으로 본 갱신 방법 비교

6.2 가중치의 초깃값

__6.2.1 초깃값을 0으로 하면?

__6.2.2 은닉층의 활성화 분포

__6.2.3 ReLU를 사용할 때의 가중치 초깃값

__6.2.4 MNIST 데이터셋으로 본 가중치 초깃값 비교

6.3 배치 정규화

__6.3.1 배치 정규화 알고리즘

__6.3.2 배치 정규화의 효과

6.4 바른 학습을 위해

__6.4.1 오버피팅

__6.4.2 가중치 감소

__6.4.3 드롭아웃

6.5 적절한 하이퍼파라미터 값 찾기

__6.5.1 검증 데이터

__6.5.2 하이퍼파라미터 최적화

__6.5.3 하이퍼파라미터 최적화 구현하기

6.6 정리

7장 합성곱 신경망(CNN)

7.1 전체 구조

7.2 합성곱 계층

__7.2.1 완전연결 계층의 문제점

__7.2.2 합성곱 연산

__7.2.3 패딩

__7.2.4 스트라이드

__7.2.5 3차원 데이터의 합성곱 연산

__7.2.6 블록으로 생각하기

__7.2.7 배치 처리

7.3 풀링 계층

__7.3.1 풀링 계층의 특징

7.4 합성곱/풀링 계층 구현하기

__7.4.1 4차원 배열

__7.4.2 im2col로 데이터 전개하기

__7.4.3 합성곱 계층 구현하기

__7.4.4 풀링 계층 구현하기

7.5 CNN 구현하기

7.6 CNN 시각화하기

__7.6.1 1번째 층의 가중치 시각화하기

__7.6.2 층 깊이에 따른 추출 정보 변화

7.7 대표적인 CNN

__7.7.1 LeNet

__7.7.2 AlexNet

7.8 정리

8장 딥러닝

8.1 더 깊게

__8.1.1 더 깊은 네트워크로

__8.1.2 정확도를 더 높이려면

__8.1.3 깊게 하는 이유

8.2 딥러닝의 초기 역사

__8.2.1 이미지넷

__8.2.2 VGG

__8.2.3 GoogLeNet

__8.2.4 ResNet

8.3 더 빠르게(딥러닝 고속화)

__8.3.1 풀어야 할 숙제

__8.3.2 GPU를 활용한 고속화

__8.3.3 분산 학습

__8.3.4 연산 정밀도와 비트 줄이기

8.4 딥러닝의 활용

__8.4.1 사물 검출

__8.4.2 분할

__8.4.3 사진 캡션 생성

8.5 딥러닝의 미래

__8.5.1 이미지 스타일(화풍) 변환

__8.5.2 이미지 생성

__8.5.3 자율 주행

__8.5.4 Deep Q-Network(강화학습)

8.6 정리

부록 A Softmax-with-Loss 계층의 계산 그래프

A.1 순전파

A.2 역전파

A.3 정리

참고문헌

추가 적립 안내

윤영선(한남대학교 정보통신공학과 교수)

『밑바닥부터 시작하는 딥러닝』에 이어 널리 사용되는 딥러닝 모델을 직접 구현하면서 기본 원리를 체득하는 체험형 입문서입니다. 전편이 딥러닝의 기본 이론을 밑바닥부터 구현할 수 있도록 안내했다면 이번에는 자신만의 딥러닝 프레임워크를 구축할 수 있는 토대를 만들어줍니다. 파이썬과 넘파이의 활용까지 책임지는 훌륭한 지침서입니다. 딥러닝 프레임워크를 연구하는 모든 분께 이 책을 추천합니다.

박동주(광주과학기술원 석사과정)

머신러닝 라이브러리를 이용하여 딥러닝 분야에 뛰어들게 되면 네트워크의 내부 구조와 디테일한 부분들을 자세하게 알 수 없어 한없이 답답합니다. 이 책은 큰 부분부터 디테일한 부분까지 밑바닥부터 직접 구현해 네트워크에 대한 이해를 돕고, 답답함을 한 방에 날려줍니다. 그동안 국내에 출판된 책들이 RNN 계열이나 자연어 처리 계열을 잘 다루지 않는 것에 비해, 이 책은 기초적인 자연어 처리부터 응용, 심화 과정까지 설명합니다. 자연어 처리 분야에 뛰어들 분들께 추천합니다.

성민석(홍익대학교 컴퓨터공학과 4학년)

앞으로 자연어 처리 기본서는 이 책의 전과 후로 나뉠 겁니다. 전편에서와 마찬가지로 직관적이고 논리적으로 설명해주는 부분에서 감탄했습니다. 자연어 처리를 처음 접하는 입문자부터 단순히 프레임워크를 활용해본 경험자까지, 자연어 처리 과정이 어떻게 이루어지는지 알고 싶은 모든 분께 추천합니다. 특히 통계 기반 기법과 추론 기반 기법의 장단점과 차이점을 설명하는 부분이 명쾌해서 내용을 이해하는 데 큰 도움이 되었습니다.

김선웅((주)스캐터랩 머신러닝 엔지니어)

딥러닝을 이용한 자연어 처리의 기본을 밑바닥부터 공부할 수 있습니다. 전편과 마찬가지로 RNN, LSTM, 어텐션 등을 구현하면서 각각의 작동 원리를 쉽게 공부할 수 있습니다. 저는 작년에 일본어판을 먼저 읽어보았는데, 번역 또한 전편과 마찬가지로 아주 좋습니다.

김동성

이 책은 RNN 기반 신경망에 대한 개념을 쉽게 설명해주고, 복잡한 응용 모델들을 그림과 예제를 통해 알려줍니다. 시계열을 공부하는 분, RNN 공부를 시작하는 분께 큰 도움이 될 것입니다.

– 삼성 리서치(Samsung Research) 연구원

양민혁(현대모비스 빅데이터팀)

쉽게 풀어쓴 이론과 친절하게 설명한 코드를 따라가다 보면 자연어 처리 분야의 발전 과정을 자연스럽게 이해할 수 있습니다. 딥러닝 기초가 필요한 분은 전편부터 공부하시는 걸 추천합니다.

김경수(봉일천고등학교 2학년)

밑바닥부터 시작하는 딥러닝 2편이 나오다니! 너무나 신납니다. 저처럼 어린 학생들도 자연어 처리에 맞추어 무리 없이 쉽게 이해하며 따라 할 수 있는 책입니다. 저와 같은 어린 학생들이 과연 할 수 있을까 망설이고 있다면, 주저 없이 이 책을 집어 드세요.

밑바닥부터 시작하는 딥러닝 3

작품 소개

<밑바닥부터 시작하는 딥러닝 3>

코드 3줄이 딥러닝 프레임워크가 되는 마법

이 책은 ‘밑바닥부터’ 직접 만들어보며 즐겁게 딥러닝을 익히는 시리즈의 장점을 그대로 따랐습니다. 코드 3줄로 시작해 60단계까지 차근차근 구현해보세요. 어느새 파이토치, 텐서플로와 같은 현대적이지만 미니멀한 딥러닝 프레임워크가 완성돼 있을 것입니다. 딥러닝과 파이썬 지식을 어느 정도 갖췄다면 전편을 읽지 않고도 충분히 따라 할 수 있습니다. 동적 계산 그래프(Define-by-Run) 구조와 딥러닝 프레임워크 기본 설계, 두 마리 토끼를 잡아보세요!

추천사

『밑바닥부터 시작하는 딥러닝』이라는 책의 제목이 너무나도 어울리는 책입니다. 매번 딥러닝을 겉핥기식으로 사용하고 있다는 불안감에 차 있던 제게 큰 도움이 되었습니다. 파이썬에 대한 기초만 있다면 도전할 수 있도록 이끌어주기 때문에 딥러닝의 기초를 탄탄하게 다지고 싶은 분께 꼭 추천합니다.

_김효린, 스타트업 백엔드 개발자

딥러닝 프레임워크를 개발하며 그 구조를 이해하는 것뿐 아니라, API 설계에 대한 영감도 얻을 수 있는 책입니다. 차근히 따라 하다 보면 여러 주제를 한 번에 공부할 수 있습니다. 초보자를 위한 책은 아닙니다. ‘적어도 파이썬을 구사할 줄 아는 수준’에서 시작하면 한 단계 더 성장한 자신과 마주하게 될 것입니다.

_문상환, 오드컨셉, 도쿄공업대학

『밑바닥부터 시작하는 딥러닝 3』은 딥러닝뿐 아니라 파이썬 프로그래밍에 도움이 될 내용으로 가득합니다. 이 책을 통해 딥러닝 프레임워크의 기본 구조를 이해하고 나면 텐서플로와 파이토치 같은 프레임워크의 코드를 직접 보는 것도 한결 수월할 것입니다. 딥러닝 관련 일을 하지 않더라도 인공지능에 관심 있는 파이썬 엔지니어라면 꼭 읽어보길 권합니다.

_박진형, XL8 공동 창업자, 전 애플 엔지니어

자신만의 딥러닝 프레임워크를 꿈꾸는 분은 물론, 딥러닝 모델을 더 잘 만들고 싶은 분께 추천합니다. 자동 미분에서 시작해 밑바닥부터 프레임워크를 쌓아 올리면서 현대적 딥러닝 프레임워크들이 무엇을 지향하며 어떻게 설계되었는지 철학을 배울 수 있었습니다. 실제로 저는 이 책을 읽으며 파이토치의 코드들을 더 깊이 이해할 수 있었습니다. ‘딥러닝 프레임워크를 만들 생각은 없어!’라며 지나치지 말고, 책을 끝까지 읽다 보면 유명한 프레임워크들을 더 자유롭게 다루는 자신을 발견하게 될 것입니다.

_송헌, 규슈대학대학원 컴퓨터비전 연구실 석사과정

이번 3편을 베타리딩하면서 ‘당분간 인공지능 입문서는 이 책이 석권하겠구나’라는 생각이 들었습니다. 2020년 현재 주류인 동적 계산 그래프(Define-by-Run)의 구조와 인공지능의 기본 설계라는 두 마리 토끼를 모두 잡은 책입니다. 지식 간 연결고리가 잘 만들어지지 않아 고민이었다면, 이 책이 단비가 되어줄 것입니다.

_시한, VAIS 인공지능 오픈채팅 커뮤니티 운영진

이제 막 딥러닝을 공부하기 시작한 고등학생, 대학생, 대학원생은 물론 현업에 있는 모두에게 큰 도움이 되는 책입니다. 딥러닝을 대략적으로만 아는 이들이 부족한 부분을 채우고 한층 깊이 이해할 수 있도록 내용이 꼼꼼하고 자세합니다. 꼭 읽어보세요!

_안상준, 『파이썬 딥러닝 파이토치』 저자

포스트 코로나 시대에는 인공지능 기술을 이해하고 의료 현장에 적용할 수 있는 전문가가 반드시 필요합니다. 이 책을 통해 유명 프레임워크를 좀 더 능숙하게 다루게 되어 의학적 진단, 치료, 예방에 도움이 되는 딥러닝 모델을 멋지게 구현하기 바랍니다. 『밑바닥부터 시작하는 딥러닝』에서 배운 이론을 바탕으로 자신의 전문 분야에 딥러닝을 적용하고 싶은 모든 분께 적극 추천합니다.

_이현훈, 한의사전문의, 경희대학교 임상한의학과 박사과정

라이브러리나 프레임워크를 밑바닥부터 구현하는 작업은 어렵고 힘들지만 딥러닝의 핵심 요소를 공부할 수 있는 좋은 기회입니다. 저도 텐서플로나 파이토치를 사용하다가 한 번쯤 나만의 딥러닝 프레임워크를 만들어보면 좋겠다고 생각한 적이 있습니다. 이 책과 함께라면 자동 미분 계산부터 신경망까지 구현하는 긴 여정을 헤쳐나갈 수 있습니다. 이 책은 여러분만의 프레임워크를 만드는 좋은 출발점이 되어줄 것입니다.

_옥찬호, 넥슨 코리아 프로그래머, 마이크로소프트 MVP

이 책은 설레는 모험으로 가득한, 마치 잘 짜여진 RPG 게임을 한 레벨씩 정복하는 듯한 몰입감을 줍니다. 그 여정에서 독자는 딥러닝 메커니즘을 완전히 이해하게 되고, 덤으로 파이썬의 고급 사용법까지 익히게 됩니다. 순탄치 않은 길이지만 완주 후 꽤나 값비싼 무기를 손에 쥐는 짜릿한 여운은 계속될 것입니다.

_전두용, 성운대 교양학부 교수, 경북대 컴퓨터공학과 박사과정

펼쳐보기

[밑바닥부터 시작하는 딥러닝] CH.3 신경망

728×90

반응형

밑딥 데이터셋 다운로드 : github.com/WegraLee/deep-learning-from-scratch

앞 장에서 배운 퍼셉트론으로 복잡한 함수도 표현가능

신경망의 성질 : 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력

3.1 퍼셉트론에서 신경망으로

3.1.1 신경망의 예

신경망의 구조 예시

가장 왼쪽 줄을 입력층, 맨 오른쪽 줄 출력층, 중간 층을 은닉층이라고 함

* 해당 책에서는 위의 신경망 구조를 ‘2층 신경망이라고 표현’

가중치를 갖는 층이 두 개이기 때문 / 문헌에 따라서는 같은 구조를 ‘3층 신경망’이라고도 표현

3.1.3 활성화 함수의 등장

활성화 함수 – 입력 신호의 총합이 활성화를 일으키는 지 정하는 역할, 입력을 출력으로 변환

a = 입력총합 / h() = 활성화 함수 / y = 출력값

활성화 함수의 처리과정

* 일반적으로 단층 퍼셉트론은 단층 네트워크에서 계단 함수 사용한 모델을 가리키고,

다층 퍼셉트론은 신경망(여러 층으로 구성되고 시그모이드 함수 등의 매끈한 활성화 함수사용)을 가리킴

3.2 활성화 함수

계단 함수 – 임계값을 경계로 출력이 바뀌는 함수

퍼셉트론에서는 활성화 함수로 계단 함수를 이용한다고 할 수 있음

3.2.1 시그모이드 함수 (sigmoid function)

시그모이드 함수를 나타낸 식

exp(-x)는 e^-x를 뜻하며, e는 자연상수로 2.7182…의 값을 갖는 실수

다른 함수와 마찬가지로 입력을 주면 출력을 돌려주는 변환기 역할

*계단함수 및 시그모이드함수 구현 생략

*시그모이드 함수

exp = exponentially(기하급수적으로)

x의 값이 커질수록 1보다 아주 작은값만큼의 큰 값이 분모의 값이 됨 (0.999….같은)

즉, 전체 값이 1에 가까워짐 / 반대의 경우도 마찬가지로 전체 값이 0에 가까워짐

이런 점을 활용한 함수가 sigmoid() 함수

3.2.5 시그모이드 함수와 계단 함수 비교

시그모이드 함수와 계단 함수 그래프비교

– 가장 큰 차이는 ‘매끄러움’의 차이

– 계단 함수는 0과 1만 반환하는 반면, 시그모이드 함수는 실수를 반환

– 공통점으로는 입력이 중요하면 큰 값, 중요하지 않으면 작은 값 출력

– 출력이 0에서 1 사이

3.2.6 비선형 함수

선형 함수 – 이 변환기에 무언가 입력했을 대 출력이 입력의 상수배만큼 변하는 함수 (f(x) = ax + b)

x와 y의 관계가 선형결합 으로 표현되는 관계

비선형 함수 – 직선 1개로는 그릴 수 없는 함수

신경망에서는 활성화 함수로 비선형 함수를 사용해야함

– 선형함수를 이용하면 신경망의 층을 깊게하는 의미가 없어지기 때문

선형함수의 문제는 층을 아무리 깊게해도 ‘은닉층이 없는 네트워크’로도 똑같은 기능을 할 수 있다는 것

3.2.7 ReLU 함수

ReLU 함수

– 입력이 0을 넘으면 그대로, 0 이하면 0을 출력하는 함수

– numpy로 구현시, maximum함수 사용하면 구현 가능

3.3 다차원 배열의 계산

숫자가 N차원으로 나열하는 것을 통틀어 다차원 배열이라고 함.

가로방향을 행(row)이라고 하며, 세로방향을 열(column)이라고 함.

1차원 배열일때도 shape은 tuple형태로 반환 ( (,10)과 같은 형태)

#2차원 배열 만들기 B = np.array([[1,2,3], [4,5,6], [7,8,9]])

3.3.2 행렬의 곱

왼쪽 행렬의 행(가로)과 오른쪽 행렬의 열(세로)을 원소별로 곱

numpy의 dot함수 이용하면 쉽게 곱셈가능

행렬의 곱 / numpy 구현

행렬의 곱에서 주의해야 할 점

– 행렬의 형상(shape)에 주의 해야 함

– 대응하는 차원의 원소 수를 일치시켜야 함 (그렇지 않으면 오류 출력)

– 서로 차원이 다를 때에도 원칙은 똑같이 적용됨

행렬 곱 주의할 점

3.3.3 신경망에서의 행렬 곱

편향과 활성화 함수를 생략한 신경망

신경망에서의 행렬 곱

X, W, Y의 형상을 주의해서 보기 (대응하는 차원의 원소 수가 같아야함!)

3.4 3층 신경망 구현하기

3층 신경망의 구조

3.4.2 각 층의 신호 전달 구현하기

입력층에서 1층으로 신호 전달

– 편향을 뜻하는 뉴런인 (1)이 추가

– 가중치를 곱한 신호 두 개와 편향을 합친 수식 도출 가능

– numpy를 사용해서 구현하기

X = np.array([1.0, 0.5)] W1 = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]]) B1 = np.array([0.1, 0.2, 0.3]) print(W1.shape) # (2,3) print(X.shape) # (2, ) print(B1.shape) # (3, ) A1 = np.dot(X, W1) + B1

1층의 활성화 함수에서의 처리

입력층에서 1층으로의 신호전달 – 활성화 함수 처리

가중치 합을 a로 표기, 활성화 함수 h()로 변환된 신호를 z로 표기

z가 같은 과정 거쳐 2층으로 전달됨

3.4.3 구현 정리

numpy로 구현한 3층 신경망 numpy로 구현한 3층신경망 – 결과값

3.5 출력층 설계하기

머신러닝(기계학습) 문제는 크게 분류와 회귀로 나뉨

일반적으로 회귀 문제의 경우 항등 함수, 분류에는 소프트맥스 함수 사용

항등함수는 입력을 그대로 출력

항등함수 그림(왼쪽)과 소프트맥스함수 수식 및 그림(오른쪽)

소프트맥스 함수의 분자는 입력신호의 지수함수, 분모는 모든 입력신호의 지수 함수의 합으로 구성

소프트맥스는 출력노드가 모든 입력노드의 영향을 받음

3.5.2 소프트맥스 함수 구현 시 주의점

softmax()는 오버플로 문제가 있음 – 너무 큰 값을 출력하여 표현할 수 없는 문제

softmax의 지수함수 계산 시 어떤 정수를 더하거나 빼도 결과는 바뀌지 않음

이를 이용하여 분자, 분모 각각에 정수를 더하여 문제 해결

정수 (C’)는 보통 maximum값 이용

소프트맥스 함수 구현시 주의점 – 오버플로 문제 해결

3.5.3 소프트맥스 함수의 특징

a = np.array([0.3, 2.9, 4.0]) y = softmax(a) print(y) >>> [0.1821127, 0.24519181, 0.73659691] np.sum(y) >>> 1.0

소프트맥스 함수의 출력은 0에서 1.0 사이의 실수

또한, 출력 총합이 1

이 성질로 인해 소프트맥스 함수의 출력을 ‘확률’로 해석가능

소프트맥스 적용해도 각 원소의 대소관계는 변하지 않음 (지수함수가 단조증가함수이므로)

결과적으로 소프트맥스 함수는 생략 가능함 (추론단계에서)

신경망 학습 시에는 출력층에서 소프트맥스 함수 사용함.

3.5.4 출력층의 뉴런 수 정하기

출력층의 뉴런 수는 풀려는 문제에 맞게 적절히 정해야 함

분류에서는 분류하고 싶은 클래스 수로 설정하는 것이 일반적

3.6 손글씨 숫자 인식

이미 학습된 매개변수 사용하여 추론과정만 구현 – 신경망의 순전파(forward propagation)

import sys, os sys.path.append(os.pardir) from dataset.mnist import load_mnist (x_train, t_train), (x_test, t_test) = \ load_mnist(flatten=True, normalize=False)

load_mnist함수의 파라미터

– normalize: 입력 이미지의 픽셀값을 0.0~1.0 사이의 값으로 정규화할지

– flatten: 입력 이미지를 1차원 배열로 만들지

– one-hot-label: 원-핫 인코딩 형태로 저장할지

3.6.2 신경망의 추론 처리

– 입력층 뉴런 : 784개 (이미지크기가 28*28=784이기 때문)

– 출력층 뉴런 : 10개 (0 ~ 9까지, 클래스 수가 10개이기 때문)

– 은닉층 뉴런 : 각 50개 / 100개 (임의로 정한 값)

def get_data(): (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, flatten=True, one_hot_label=False) return x_test, t_test def init_network(): #가중치와 편향 매개변수가 딕셔너리 변수로 저장되어 있음 with open(“sample_weight.pkl”, ‘rb’) as f: network = pickle.load(f) return network def predict(network, x): W1, W2, W3 = network[‘W1’], network[‘W2’], network[‘W3’] b1, b2, b3 = network[‘b1’], network[‘b2’], network[‘b3’] a1 = np.dot(x, W1) + b1 z1 = sigmoid(a1) a2 = np.dot(z1, W2) + b2 z2 = sigmoid(a2) a3 = np.dot(z2, W3) + b3 y = softmax(a3) return y

x, t = get_data() network = init_network() accuracy_cnt = 0 for i in range(len(x)): y = predict(network, x[i]) # 확률 배열로 반환 p = np.argmax(y) #배열에서 확률이 가장 높은 원소 if p == t[i]: accuracy_cnt += 1 print(“Accuracy: “+str(float(accuracy_cnt) / len(x))) # 정확도 파악

정확도를 통해 올바르게 분류한 비율 알아보기

* 데이터 전처리 (pre-processing)

위의 예시에서는 normalize = True설정

0 ~ 255 범위인 각 픽셀의 값을 0.0~1.0 범위로 변환 (정규화)

PCA 변환 뒤 분산을 1로 조정 (백색화, whitening)

3.6.3 배치 처리

배치처리 – 이미지 여러 개를 한꺼번에 묶어 넘기는 것

배치(batch) – 하나로 묶은 입력 데이터

배치처리를 위한 배열들의 형상 추이

* 배치처리를 할 때에도 원소별 수를 맞춰주어야 한다

이미지 100장을 한꺼번에 입력하는 경우 구현

x, t = get_data() network = init_network() batch_size = 100 #배치 크기 = 100 accuracy_cnt = 0 for i in range(0, len(x), batch_size): #0부터 len(x)까지 batch_size간격 x_batch = x[i:i+batch_size] y_batch = predict(network, x_batch) # 확률 배열로 반환 p = np.argmax(y_batch, axis=1) #배열에서 확률이 가장 높은 원소 accuracy_cnt += np.sum(p == t[i:i+batch_size]) # 100장씩 실제 답과 비교 print(“Accuracy: “+str(float(accuracy_cnt) / len(x)))

이번 장에서 배운 내용

– 신경망에서는 활성화 함수로 시그모이드 함수와 ReLU함수 같은 매끄럽게 변화하는 함수 이용

– 넘파이의 다차원 배열 잘 사용하면 신경망 효율적으로 구현가능

– 기계학습 문제는 크게 회귀와 분류로 나눌 수 있음

– 출력층 활성화 함수로 회귀에서는 주로 항등함수, 분류에서는 주로 소프트맥스 함수 이용

– 분류에서는 출력층의 뉴런 수를 분류하려는 클래스 수와 같게 설정

– 입력데이터를 묶은 것을 배치라 하며, 추론처리를 배치단위로 진행하면 빠른 결과

728×90

반응형

밑바닥부터 시작하는 딥러닝 1′ 카테고리의 글 목록

해당 포스팅은 한빛 미디어에서 출판한 ‘밑바닥부터 시작하는 딥러닝’이라는 교재의 내용을 따라가며 딥러닝 튜토리얼을 진행하고 있습니다. 관련 자료는 여기에서 찾거나 다운로드 받으실 수 있습니다. 매개변수 갱신 신경망 학습의 목적은 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것이다. 이는 매개변수의 최적값을 찾는 문제이며, 이러한 문제를 푸는 것을 최적화(optimization)라고 한다. 우리는 지금까지 매개변수의 기울기(미분)을 이용해 기울어진 방향으로 매개변수 값을 갱신하는 일을 반복해 최적화를 진행했다. 이것이 확률적 경사 하강법(SGD)이라는 방법이다. SGD는 단순하지만, SGD보다 똑똑한 방법도 있다. 지금부터 SGD의 단점을 알아보고, SGD와는 다른 최적화 기법을 알아보도록 하겠다!..

키워드에 대한 정보 밑바닥 부터 시작 하는 딥 러닝

다음은 Bing에서 밑바닥 부터 시작 하는 딥 러닝 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [딥러닝I] 1강. 퍼셉트론

  • 밑바닥부터 시작하는 딥러닝
  • 딥러닝
  • 인공지능
  • 인공신경망
  • 한경훈
  • 수원대
  • 퍼셉트론
[딥러닝I] #1강. #퍼셉트론


YouTube에서 밑바닥 부터 시작 하는 딥 러닝 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [딥러닝I] 1강. 퍼셉트론 | 밑바닥 부터 시작 하는 딥 러닝, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment