最近流行りのニューラルネットワーク(ディープラーニング)ですが、モデルがブラックボックスであり、どのようなモデルとなっているのか分からないのが1つのネックです。どのように学習されているのかをトレースできるようにするため、下記のような構成と学習過程の可視化ツールの構築にトライしました。上図では、左図が学習回数と予測精度を、右図がニューラルネットワークの構成を表しており、エッジの太さが結合パラメータの大きさを示しています。学習によりエッジが太くなった場合は赤く、細くなった場合は青く表すことで、どのエッジが学習されたかが分かるようにしており、特定の結合が強くなっていっている傾向がご覧いただけると思います。上記図の作成までは下記の手順の通り、Chainerを使ったニューラルネットワークの構築からGraphvizを使った可視化・アニメーション化までを進めていきます。ニューラルネットワークモデルの学習(Chainer)以下の記事で説明しています。【初めて使う人向け】Chainerでニューラルネットを学習する手順を整理してみたモデルの可視化(Graphviz)以下の記事で説明しています。PythonでGraphvizを使ってニューラルネットワークを描画する以下の記事で説明しています。具体的に以下のような可視化ツールのファンクションを構築しました。以下5つの引数を受け取ります。引数を関数に渡すと、自動的にアニメーションが作成・保存されます。trainerはget_trainerという関数を仮に定義しましたが、必要に応じて実装してください。fileName="test.gif")createLearnAnimationのソースソースコードの説明を今後入れていこうと思っていますが、とりあえず生で置いておきます。neuralVizは「モデルの可視化(Graphviz)」で紹介している記事から取得してください。fps=10)まとめニューラルネットワーク(ディープラーニング)の学習過程を可視化するツールを作成しました。今後、これをつかってドロップアウトや活性化関数等、いろんなパラメータの効果を検証していく予定です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。プロフィール兵庫県在住の30代データサイエンティスト。Pythonを使った機械学習等によるデータ分析や、ウェブアプリ等のシステム開発に取り組んでいます。