6. ビルダーのためのガイド

巨大なデータセットや強力なハードウェアと並んで、 優れたソフトウェアツールは深層学習の急速な進歩において 不可欠な役割を果たしてきた。 2007年に画期的な Theano ライブラリが公開されて以来、 柔軟なオープンソースツールは研究者がモデルを素早く試作することを可能にし、 標準的なコンポーネントを再利用する際の反復作業を避けつつ、 低レベルの修正を行う能力は維持してきた。 時が経つにつれて、深層学習のライブラリは ますます粗い抽象化を提供する方向へ進化してきた。 半導体設計者がトランジスタの指定から論理回路へ、そしてコードを書くことへと移っていったように、 ニューラルネットワーク研究者も個々の人工ニューロンの振る舞いを考える段階から、 ネットワークを層全体として捉える段階へと移り、 現在ではさらにずっと粗い ブロック を念頭に置いてアーキテクチャを設計することが多くなっている。

これまでに、いくつかの基本的な機械学習の概念を紹介し、 完全に機能する深層学習モデルへと段階的に進んできた。 前章では、 MLP の各構成要素をゼロから実装し、 さらに高レベル API を活用して同じモデルを手軽に展開する方法まで示した。 そこまでをあれほど速く進めるために、私たちはライブラリを 利用した 一方で、 それらが どのように動作するか という、より高度な詳細には触れなかった。 この章では、その幕を引きはがし、 深層学習計算の主要な構成要素、すなわちモデル構築、パラメータへのアクセスと初期化、 カスタム層とブロックの設計、モデルのディスクへの読み書き、 そして GPU を活用して劇的な高速化を実現する方法について、さらに深く掘り下げる。 これらの知識によって、あなたは エンドユーザー から パワーユーザー へと進み、 成熟した深層学習ライブラリの利点を享受しながら、 自分で考案したものを含む、より複雑なモデルを実装する柔軟性も保つために必要な道具を手に入れることができる! この章では新しいモデルやデータセットは導入しないが、 続く高度なモデリングの章では、これらの技術に大きく依存する。