-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.html
152 lines (138 loc) · 9.47 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="author" content="Yusuke Shinyama">
<meta name="keywords" content="ニューラルネットワーク, ディープラーニング, 深層学習">
<meta name="description" content="Python/PyTorchを使ったディープラーニング入門講座。理論的な基礎から物体認識・奥行き推定タスクの実装まで。">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="twitter:card" content="summary" />
<meta property="og:type" content="website" />
<meta property="og:title" content="真面目なプログラマのためのディープラーニング入門" />
<meta property="og:image" content="https://euske.github.io/introdl/dl.png" />
<meta property="og:url" content="https://euske.github.io/introdl/" />
<meta property="og:description" content="Python/PyTorchを使ったディープラーニング入門講座。理論的な基礎から物体認識・奥行き推定タスクの実装まで。" />
<link rel="stylesheet" type="text/css" href="common.css" />
<title>真面目なプログラマのためのディープラーニング入門</title>
<style><!--
.author { text-align: right; }
.thumb { outline: 1px solid; }
--></style>
<body>
<div class=author>
<a href="https://github.com/euske/introdl"><svg version="1.1" width="16" height="16" viewBox="0 0 16 16" alt="github"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg></a>
</div>
<h1 style="display: flex; align-items: center;">
<div style="padding-right: 1em;">
<table>
<tr><td style="background:#0057b8; color:white;">真面目なプログラマのための</td></tr>
<tr><td style="background:#ffd700; color:black;">ディープラーニング入門</td></tr>
</table>
</div>
<div>
<img src="dl.png" width="130" height="184">
</div>
</h1>
<div class=author>
新山 祐介
</div>
<dl>
<dt> はじめに:
<dd>
本講座は「機械学習ってなんか面倒くさそう」と感じている
プログラマのためのものである。本講座では
「<strong>そもそも機械が『学習する』とはどういうことか?</strong>」
「<strong>なぜニューラルネットワークで学習できるのか?</strong>」といった
根本的な疑問に答えることから始める。
そのうえで「<strong>ニューラルネットワークでどのようなことが学習できるのか?</strong>」
という疑問に対する具体例として、物体認識や奥行き認識などの問題を扱う。
最終的には、機械学習のブラックボックス性を解消し、所詮は
ニューラルネットワークもただのソフトウェアであり、
固有の長所と短所をもっていることを学ぶことが目的である。
なお、この講座では機械学習のソフトウェア的な原理を中心に説明しており、
理論的・数学的な基礎はそれほど厳密には説明しない。
使用環境は Python + PyTorch を使っているが、一度原理を理解してしまえば
環境や使用言語が変わってもそれほど混乱しないはずである。
<p>
てっとり早く概要が知りたい人は、<a href="summary.html">本講座の超要約</a>を参照のこと。
全部読む時間がない方で、とりあえずニューラルネットワークの基本原理だけを
理解できればいいという方は第3回まで、ディープラーニングのさわりまでを
理解したい方は第5回までを読むのがおすすめ。
<p>
<a href="https://euske.github.io/introdl/index.html">本講座の公式サイト</a>
および
<a href="https://github.com/euske/introdl/tree/main/src">例題のソースコード一覧</a>。
<dt> 受講対象者:
<dd>
<ul>
<li> ある程度のプログラミング経験 (C, Java, Pythonなど) がある方。
<li> 高校数学を理解している方。
</ul>
<dt> 達成目標:
<dd>
<ul>
<li> ニューラルネットワークやディープラーニング (深層学習) の原理を理解する。
<li> 画像処理のためのニューラルネットワークを設計できる。
<li> 自分の設計したニューラルネットワークを実装できる。
</ul>
</dl>
<div class=notice>
<strong>免責事項:</strong>
本講座は新山 祐介が個人の興味において制作したものです。
内容の正確さは保証しません。
また本サイトは常時更新されており、
内容は予告なく変更されることがあります。
</div>
<h2>目次</h2>
<ol class=spacy>
<li> <a href="lec1/index.html">プログラマのための Python 入門</a><br>
<div><a href="lec1/index.html"><img class=thumb width="200" height="100" src="lec1/lec1_thumb.png"></a></div>
Python にそれほど詳しくない人のため、Python のおもな機能をおさらいする。
機械学習に関する話は一切出てこないので、
Pythonに習熟している人は読みとばしてもかまわない。
<li> <a href="lec2/index.html">機械が「学習する」とはどういうことか?</a><br>
<div><a href="lec2/index.html"><img class=thumb width="200" height="100" src="lec2/lec2_thumb.png"></a></div>
簡単な機械学習アルゴリズム (決定木) の実装をおこない、
機械学習の基本的な概念・用語 (特徴量とは何か、
訓練データとテストデータの違いは何か、など) を説明する。
<li> <a href="lec3/index.html">なぜニューラルネットワークで学習できるのか?</a><br>
<div><a href="lec3/index.html"><img class=thumb width="200" height="100" src="lec3/lec3_thumb.png"></a></div>
ニューラルネットワークの原理と勾配降下法について説明し、
Python で簡単なニューラルネットワークを実装する。
これが完了した時点で、読者はニューラルネットワークについて
明確なイメージが持てているはずである。
<li> <a href="lec4/index.html">ディープラーニングへの入り口: MNIST</a><br>
<div><a href="lec4/index.html"><img class=thumb width="200" height="100" src="lec4/lec4_thumb.png"></a></div>
NumPy を使ってニューラルネットワークの実装を効率化し、
より多くの入力を扱えるようにする。
これを使って画像認識の代表的なタスクである MNIST の学習を実装する。
<li> <a href="lec5/index.html">画像処理に適したニューラルネットワークとは?</a><br>
<div><a href="lec5/index.html"><img class=thumb width="200" height="100" src="lec5/lec5_thumb.png"></a></div>
画像認識の性能を上げるための様々なテクニックについて解説する。
そのひとつである畳み込みニューラルネットワークを解説し、
これを使って MNIST と CIFAR-10 を学習する。
<li> <a href="lec6/index.html">GPU の仕組みと PyTorch 入門</a><br>
<div><a href="lec6/index.html"><img class=thumb width="200" height="100" src="lec6/lec6_thumb.png"></a></div>
GPU を使ったディープニューラルネットワークを開発するための準備をおこなう。
PyTorch の使い方を説明し、それを使って MNIST を再実装する。
<li> <a href="lec7/index.html">ディープラーニング応用: 物体認識と奥行き推定</a><br>
<div><a href="lec7/index.html"><img class=thumb width="200" height="100" src="lec7/lec7_thumb.png"></a></div>
現実的なディープラーニングの問題にチャレンジする。
はじめによく知られた画像認識システムである VGG を紹介する。
つぎに物体認識 (YOLO) および奥行き推定の原理を説明し、
PyTorch を使ってそれを実装する。
また、アノテーションツール (VIA) の簡単な使い方についてもふれる。
<li> <a href="lec8/index.html">さらにディープな世界へ: 勾配消失問題と残差ネットワーク (ResNet)</a><br>
<div><a href="lec8/index.html"><img class=thumb width="200" height="100" src="lec8/lec8_thumb.png"></a></div>
勾配消失問題と残差ネットワーク (ResNet) を紹介し、
PyTorch をさらに活用するためのトピック (転移学習、ONNX形式など) について触れる。
</ol>
<ul>
<li> <a href="transformer/index.html">(数式を使わない) Transformer の直感的な説明</a>
<li> <a href="epilogue.html">おわりに - なぜ機械学習はうさん臭く感じられるのか?</a>
</ul>
<hr>
<div class=license>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="クリエイティブ・コモンズ・ライセンス" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />この作品は、<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンス</a>の下に提供されています。
</div>
<address>Yusuke Shinyama</address>