近年盛んに利用されている技術としてAIや機械学習があります。
その機械学習の中でもよく話題になるものとして、ディープラーニングがあります。
そこでディープラーニング・ニューラルネットワークに関する記事をまとめました。
Contents
単純パーセプトロン
単純パーセプトロンはディープラーニングやニューラルネットワークの元となったものです。
単純パーセプトロンは非常にシンプルな構造ですが、簡単な関数なら学習することができます。
本サイトでは単純パーセプトロンについてや、単純パーセプトロンの誤り訂正学習法、単純パーセプトロンの限界について調べました。
多層パーセプトロン
単純パーセプトロンでは線形分離不可能な問題を解くことはできませんでした。
そこで単純パーセプトロンを改良し、線形分離不可能な問題も扱えるようになった多層パーセプトロンというものがあります。
本サイトでは多層パーセプトロン(ニューラルネットワーク)に調べPythonで実装し、MNISTを用いた手書き数字の認識を行いました。
畳み込みニューラルネットワーク
多層パーセプトロンは非常に高度なことを行うことができますが、データ形状の破壊や学習するパラメータの数が多いなどの問題がありました。
そこでこれらの問題を改善したのが畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)です。
本サイトでは畳み込みニューラルネットワークの仕組みや、Pythonによる実装、MNISTデータセットを利用した手書き数字認識を行いました。
学習の手法
TensorFlow
TensorFlowとはGoogleが公開している機械学習のための数値計算ライブラリです。
本サイトではTensorFlowのインストール方法や、TensorFlowを用いたプログラミングの方法について調べました。
TensorFlowのインストール
TensorFlowは色々な環境で利用できるよう、様々な形で配布されています。
本サイトではWindows版Anaconda 環境を利用して、TensorFlowとTensorFlow-gpu、CUDA、cuDNNのインストール方法について調べました。
TensorFlowによるプログラミング
本サイトではPython 3.x系によるTensorFlowプログラミングの流れ、文法、TensorBoardの使い方やデータの可視化方法について調べました。
Keras