書評:『自然言語処理と深層学習《C言語によるシミュレーション》』


2017年 06月 15日

自然言語処理と深層学習,C言語による (424x600).jpg

題名:自然言語処理と深層学習

《C言語によるシミュレーション》

小高 知宏 著

A5、224項、本体2500円

平成29年3月25日 発行

オーム社

ISBN 978-4-274-22033-3



深層学習(Deep Learning)のブームが続いているが、多くの場合は画像系が話題の中心になっている。
深層学習は、何も画像処理だけでなく、自然言語処理にも使える、他にも、たぶん色々なことに使えるであろう。
ということで、少々画像関連ばかりをやるのに飽きてきたというのもあって、自然言語処理の本を取り上げることにした。


本書の最大の特徴は、C言語を使って実装されているということだ。

深層学習というと、今は圧倒的にPythonが多い。それも、多くはフレームワークを使っていて、深層学習がどのように実装されているのとかは全く分からないけれど、とりあえず動かすことができ、何かAI的な動きになっているのを感じられるという本が多いように思う。

この本は、そういう流れとはまったく違う。
C言語で、何もライブラリを利用せず、もろにゼロから作り上げている。

最初の方は準備として基本的な説明がされており、その後、畳み込みニューラルネットワーク(CNN)とリカーレントニューラルネットワーク(RNN)が、それぞれ1つの章として書かれている。
RNNについては、説明している書籍はかなり少ないようなので、参考になるかも知れない。

Cでゼロから作っているし、200ページ余のかなり薄い本なので、扱っている内容は基本的なことだけであるが、実行結果やその説明はかなり丁寧に書かれている。

Cのソースコードおよびデータは、オーム社のダウロードサービスのページから取得可能である。
書籍の実行結果を見ると、Windows上での実行結果が載っていたが、C言語の標準的な部分しか使用していないので、C言語が動くコンピュータなら何でも動作するのではないかと思う。
私はUbuntu/LinuxのGNUのCでコンパイル・実行してみたが、特に問題は無かった。

難点があるのは、Cのインデントである。
インデントの単位が1カラムになっており、読むのにちょっと困る。
印刷する場合、8tabだと都合が悪いかもしれないので、4tabで字下げをして欲しかった。
今では、C Beautifier(Cプログラム整形ソフト) という便利なツールが色々あるので、読みやすいように自動整形してから利用するのをお薦めする。