論文紹介 Understanding Batch Normalization

今回は、NIPS2018に投稿されたUnderstanding Batch Normalizationという論文を読んだので、紹介していきたいと思います。この論文は、なぜバッチ正規化(Batch Normalization)が学習に効果的なのかを実証的なアプローチで検証した論文です。 この記事は、ニ…

KelpNetで転移学習

今回は、KelpNetでVGGを元に転移学習を行います。転移学習とは、あるタスクで学習したモデルを他のタスクに利用する手法です。ニューラルネットワークの場合だと、犬を認識するというタスクで学習したネットワークを、猫を認識するというタスクに利用したり…

KelpNetでVGG

今回は、KelpNetでVGG(をスケールダウンしたもの)を実装していきます。VGGは、2014年のILSVRCという画像認識の大会で2位(1位はGoogleNetです)になったネットワークであり、代表的な畳み込みニューラルネットワークの1つです。 今回の記事は、ニューラル…

KelpNetでCNN

今回は、KelpNetでCNN (Convolutional Neural Network) を学習していきます。CNNは、日本語では畳み込みニューラルネットワークと呼ばれています。畳み込みニューラルネットワークとは、畳み込み層やプーリング層を用いて構成されたニューラルネットワークの…

KelpNetをOpenCL・GPUで動かす

今回は、KelpNetをOpenCL・GPUで動かす方法を紹介します。OpenCLは、CPU・GPU・FPGAなどで並列処理を行うためのAPIです。KelpNetはCUDAではなくOpenCLを用いるため、GPUを用いる場合でも環境構築がとても簡単に出来ます。また、Nvidia製のGPUだけでなく、AMD…

KelpNetでXOR

今回は、KelpNetを用いてXORを学習していきます。この記事は既に他の深層学習ライブラリを使ったことがある方だけでなく、深層学習ライブラリを初めて使う方も対象にしており、ニューラルネットワークの基礎が分かれば理解が出来る内容になっています。

C#の深層学習ライブラリ「KelpNet」

KelpNetは、直観的に簡単に扱うことができるC#の深層学習のライブラリです。この記事では、「KelpNetとはどのような深層学習ライブラリなのか」「KelpNetの使い方」「KelpNetの導入方法」を説明します。

ニューラルネットワーク入門④

前回は、ニューラルネットワークの学習において重要である損失関数と勾配降下法について説明しました。前回は重みの更新量は微分を用いて求めましたが、層が深くなってきた場合、計算に時間がかかってしまうという問題があります。今回は、重みの勾配の計算…

ニューラルネットワーク入門③

前回の記事では、ニューラルネットワークは「特徴を組み合わせることで、より複雑な特徴を表現する」ことを繰り返すことによって、非常に複雑な特徴を表現出来ることを説明しました。今回は、ニューラルネットワークの重みを学習によって獲得する方法を説明…

ニューラルネットワーク入門➁

前回の記事では、形式ニューロンを用いてANDやORなどの線形分離が可能な論理回路を表現できることを説明しました。しかし、XORなどの線形分離が不可能なものは表現出来ませんでした。今回は、形式ニューロンを組み合わせることで、非線形なモデルを表現する…

ニューラルネットワーク入門➀

深層学習は、データから分類や予測に必要な特徴を発見する表現学習が可能な機械学習手法です。特に、画像などの高次元の複雑なデータに関しても表現学習が可能な点は、深層学習の大きな特徴の1つです。ニューラルネットワーク入門シリーズでは、深層学習で…