Pynote

Python、機械学習、画像処理について

Deep Learning

Keras - ImageNet の学習済みモデルを利用して画像分類を行う。

概要 Keras では VGG、GoogLeNet、ResNet などの有名な CNN モデルの学習済みモデルが簡単に利用できるようになっている。 今回は ImageNet で学習済みの VGG16 モデルを使った画像分類を行う方法を紹介する。 概要 手順 モデルを構築する。 画像を読み込む…

Deep Learning - CNN のモデル構造を可視化できる ConvNet Drawer を使ってみた

概要 ConvNet Drawer を使うと、論文などで見かけるモデル構造の図を作成できる。 概要 導入方法 使い方 PYTHONPATH に追加する。 モデルを作成する。 保存する。 対応している層 描画に関するパラメータ 参考

Keras - CNN の畳み込み層の重みや特徴マップを可視化する方法

概要 Deep Learning で用いられるプーリングの仕組み及び種類を紹介する。 概要 手順 モジュールを import する。 画像を読み込む。 モデルを作成する。 中間層の特徴マップを返す関数を作成する。 中間層 (畳み込み層) の特徴マップ及び重みを取得する。 特…

Deep Learning - プーリングについて

概要 Deep Learning で用いられるプーリングの仕組み及び種類を紹介する。 概要 プーリング層 プーリングの種類 Max Pooling Average Pooling Global Max Pooling Global Average Pooling

Deep Learning - 活性化関数

概要 Deep Learning で用いられる活性化関数 (activation function) の種類を紹介する。 概要 ステップ関数 ランプ関数 / ReLU シグモイド関数 ソフトサイン関数 ソフトプラス関数 恒等関数 双曲線関数 / tanh Scaled Exponential Liner Units (SELU) Expone…

Deep Learning - 記事一覧

About Deep Learning に関する記事一覧。 一覧 基本 順伝播型ニューラルネットワーク 順伝播型ニューラルネットワークの数式表現 活性化関数 逆伝播法 / バックプロパゲーション 逆伝播法の数式表現 畳み込みニューラルネットワーク (CNN) Keras ImageDataGe…

Deep Learning - 畳み込みニューラルネットワーク (CNN) について

概要 Deep Learning の畳み込みニューラルネットワーク及び畳み込み層について紹介する。 概要 CNN 畳み込み層 全結合層との違い 畳み込み層の出力数 畳み込み層の各ニューロンの入力 畳み込み層の各ニューロンの出力 パディング ストライド 参考

Deep Learning - 逆伝播法の数式表現

概要 下記記事で紹介した逆伝播法を数式で表現することで、仕組みを理解する。pynote.hatenablog.com 概要 記号の定義 入力が1つの場合 第 層のデルタ 重みに関する偏微分係数 バイアスに関する偏微分係数 ニューラルネットワーク全体の式 ミニバッチの場合 …

Deep Learning - 逆伝播法

概要 ニューラルネットワークの学習は損失関数を最小化することで行われる。 最小化は勾配降下法により行われるが、このアルゴリズムを実行するには損失関数 に対する重み の勾配を求める必要がある。 逆伝播法またはバックプロパゲーション (back propagati…

Deep Learning - 全結合型ニューラルネットワークの数式表現

概要 下記記事で紹介した全結合型ニューラルネットワークを数式で表現することで、仕組みを理解する。pynote.hatenablog.com 概要 記号の定義 入力が1つの場合 第 層の入力 第 層の出力 ニューラルネットワーク全体の式 ミニバッチの場合 第 層の入力 第 層…

Deep Learning - 順伝播型ニューラルネットワーク

概要 ニューラルネットワーク (neural network) は、生物の脳の神経回路網を参考に考案された数学モデルである。 ニューラルネットワークはあくまで数学モデルであり、実際の脳の仕組みを忠実に再現しているものではない。しかし、継続的な研究のおかげで、…

Keras - 画像を扱う utility 関数について

概要 Keras で画像を扱う際の utility 関数について紹介する。 画像をファイルから読み込み ndarray として取得する、画素値が [0, 1] に正規化された画像をファイルに保存するといった場合に利用できる。 キーワード keras.preprocessing.image array_to_im…

Keras - Keras 実装で学ぶ ResNet

概要 ResNet を Keras で実装する方法について、keras-resnet をベースに説明する。 概要 ResNet 実装 必要なモジュールを import する。 compose() について ResNet の畳み込み層 shortcut connection building block bottleneck building block residual b…

Keras - Keras の ImageDataGenerator を使って学習画像を増やす

概要 CNN の学習を行う場合にオーグメンテーション (augmentation) を行い、学習データのバリエーションを増やすことで精度向上ができる場合がある。 Keras の preprocessing.image モジュールに含まれる ImageDataGenerator を使用すると、リアルタイムにオ…

Deep Learning - ResNet の仕組みについて

概要 画像認識のコンテスト ILSVRC 2015 にて、top5 error rate で3.57%を記録し、優勝した CNN ネットワークモデルである。 下記、2論文に基づいて紹介する。 Deep Residual Learning for Image Recognition Identity mappings in Deep Residual Networks …

Deep Learning - Keras 実装の YOLOv3 で画像、動画から物体検出を試してみた

概要 Keras 実装の YOLOv3 である keras-yolo3 で画像、動画から物体検出を試してみた。 概要 試した環境 手順 依存ライブラリを導入する。 コード及び重みファイルをダウンロードする。 画像から物体検出を行う場合 動画から物体検出する場合

Keras 実装で学ぶ YOLOv3 - その1 YOLOv3 ネットワークの概要とその実装

概要 YOLOv3 の仕組みについて、Keras 実装の keras-yolo3 をベースに説明する。 概要 ネットワークの構造 YOLOv3 ネットワーク Darknet-53 ネットワーク ネットワークの実装 必要なモジュールを import する。 utils.compose() について 1つの畳み込み層 Da…