ニューラルネットワーク・ディープラーニングのまとめ

近年盛んに利用されている技術としてAIや機械学習があります。
その機械学習の中でもよく話題になるものとして、ディープラーニングがあります。

そこでディープラーニング・ニューラルネットワークに関する記事をまとめました。

 

単純パーセプトロン

単純パーセプトロンはディープラーニングやニューラルネットワークの元となったものです。
単純パーセプトロンは非常にシンプルな構造ですが、簡単な関数なら学習することができます。

本サイトでは単純パーセプトロンについてや、単純パーセプトロンの誤り訂正学習法、単純パーセプトロンの限界について調べました。



 

単純パーセプトロン – ニューラルネットワークの基礎とPythonによる実装

 

線形分離可能 ー 単純パーセプトロンの限界

 

誤り訂正学習 – 初歩のニューラルネットワークでの学習とPythonによる実装

 

多層パーセプトロン

単純パーセプトロンでは線形分離不可能な問題を解くことはできませんでした。
そこで単純パーセプトロンを改良し、線形分離不可能な問題も扱えるようになった多層パーセプトロンというものがあります。

本サイトでは多層パーセプトロン(ニューラルネットワーク)に調べPythonで実装し、MNISTを用いた手書き数字の認識を行いました。

 

単純パーセプトロンの高度化 – 多層化・活性化関数

 

勾配下降法・損失関数・数値微分によるニューラルネットワークの学習

 

数値微分による勾配下降法 - ニューラルネットワークの学習とPythonによる実装

 

ニューラルネットワークによる数字認識 – MNISTデータセットの学習 –

 

Keras版多層パーセプトロンによるMNISTデータセットの学習

 

畳み込みニューラルネットワーク

多層パーセプトロンは非常に高度なことを行うことができますが、データ形状の破壊や学習するパラメータの数が多いなどの問題がありました。
そこでこれらの問題を改善したのが畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)です。

本サイトでは畳み込みニューラルネットワークの仕組みや、Pythonによる実装、MNISTデータセットを利用した手書き数字認識を行いました。



 

畳み込みニューラルネットワークの基礎

 

CNNによる手書き数字の認識 – MNISTの学習とPythonによる実装 –

 

Keras版CNNによるCIFAR-10データセットの学習

 

学習の手法

 

ニューラルネットワーク・ディープラーニングの基本的な活性化関数

 

Dropoutを利用したニューラルネットワークの過学習の抑制

 

TensorFlow

TensorFlowとはGoogleが公開している機械学習のための数値計算ライブラリです。
本サイトではTensorFlowのインストール方法や、TensorFlowを用いたプログラミングの方法について調べました。

TensorFlowのインストール

TensorFlowは色々な環境で利用できるよう、様々な形で配布されています。

本サイトではWindows版Anaconda 環境を利用して、TensorFlowとTensorFlow-gpu、CUDA、cuDNNのインストール方法について調べました。

 

Windows版Anacondaを利用してTensorFlowのインストール

 

Windows環境へのCUDA・cuDNNのインストール

 

TensorFlowによるプログラミング

本サイトではPython 3.x系によるTensorFlowプログラミングの流れ、文法、TensorBoardの使い方やデータの可視化方法について調べました。

 

TensorFlowプログラミングの流れ

 

TensorFlowの基本文法

 

TensorBoardによるTensorFlowプログラミングの可視化

 

Tensorflowによるデータのマージ方法   – merge・merge_all –

 

TensorFlowにおける学習結果の保存と再利用

 

Keras

Windows版Anacondaを利用したKeras のインストール