覚え書きブログ

ディープラーニング

tensorflow2.2のsubclassingによるUnetの実装

前回のコードを拡張し、今度はUnetを実装してみた。 hirotaka-hachiya.hatenablog.comUNetは、以下のように、Uのような形をしたネットワークで、画像を一度低解像度化し特徴抽出してから、元の解像度に戻すことにより復元する。 特徴としては、encoderの各大…

tensorflow2.2のsubclassingによるautoencoderの実装2

前回に引き続き、autoencoderをsublassing AIPで実装してみた。 hirotaka-hachiya.hatenablog.com今回は、以下のように画像を2値化し分類問題として解いてみた。 また、ラベルをone-hotベクトルで表現し、embeddingベクトルに追加してみた。 # 画像の2値化 x…

tensorflow2.2のsubclassingによるautoencoderの実装

以下を参考に、tensorflow2.2以降で許可されたtrain_step, test_stepおよびpredict_stepのオーバーライドを用いて、Subclassing APIでautoencoderを実装してみた。 hirotaka-hachiya.hatenablog.com以下は、全体のコードである。元画像と復元画像の平均二乗…

train_stepのオーバーライドによるsubclassingの簡単化

以下では、tensorflowのバージョン2.1を前提にSequential、FunctionalおよびSubclassing APIを用いた実装方法についておおざっぱにまとめた。 hirotaka-hachiya.hatenablog.com tensorflow 2.1のSubclassing APIでは、自由度が高い分学習まわりでfor文でepoc…

tensorflow2を用いたCNNの実装方法

最近ようやくtensorflow2に移行しはじめたが、kerasの流れがあるからなのか実装方法が沢山あって、なんだかややこしい。 以下のサイトに詳しくまとまっているように、Sequential API、Functional APIおよびSubclassing APIの3つの実装方法がある。 qiita.com…

dropoutとbatch normalizationの特許 その2

googleのdropoutの特許US9406017B2だが、GoogleのOpen Patent Non-Assertion Pledge(オープン特許非係争誓約)、つまり「係争を起こさない特許」の一覧に入っていないようだ。【Dropoutの特許】 US9406017B2 - System and method for addressing overfittin…

google colaboratoryからgithubに保存

google colaboratoryは、github、gistなどと連動させることができ、colaboratory上で作成したファイルを気軽にこれらの外部のサイトで保存し、公開することができる。 まずは、colaboratoryの画面のファイルメニューから「GitHubにコピーを保存」を選択する…

google colaboratoryでcsvファイルの読み込み

Amazon Cloud9+jupyter notebookのような機能が、以下のgoogle colaboratoryで提供されている。 https://colab.research.google.comまず、colaboratoryにアクセスすると以下のような画面がでるので、「PYTHON3の新しいノートブック」をクリックする。 そうす…

scikit-learnを用いた機械学習(教師あり学習 3/3)

<< scikit-learnを用いた機械学習(教師あり学習 2/3) 教師あり学習:分類 手書き数字データMNIST 関数の学習 評価 precision(適合率) recall(再現率) F1スコア(適合率と再現率の調和平均) confusion matrix (混同行列) 教師あり学習のフローのク…

scikit-learnを用いた機械学習(教師あり学習 2/3)

<< scikit-learnを用いた機械学習(教師あり学習 1/3) 教師あり学習のフローのクラス化 演習1 教師あり学習のフローのクラス化 以下は、教師あり学習(回帰)の一連のフローを、クラス化したものです。 import pandas as pd import numpy as np import …

scikit-learnを用いた機械学習(教師あり学習 1/3)

Pythonの代表的な機械学習ライブラリであるscikit-learnを用いて教師あり学習の回帰と分類を実装し、実際にデータから関数を学習していきます。 Scikit-learnとは 教師あり学習のフロー 教師ありデータの準備 データの前処理 訓練用と評価用とに教師データを…

scikit-learnを用いた機械学習(Pythonの基礎 4/4)

<< scikit-learnを用いた機械学習(Pythonの基礎 3/4) Pythonのオブジェクト指向 演習3 Pythonのオブジェクト指向 Pythonでは、関数とクラスの定義を以下のような形式で記述します。 def 関数名(引数1,引数2, ...): 関数の処理 class クラス名: def __i…

scikit-learnを用いた機械学習(Pythonの基礎 3/4)

<< scikit-learnを用いた機械学習(Pythonの基礎 2/4) pdbを用いたデバッグ Pythonにおけるグラフのプロット 散布図 複数の散布図 ヒストグラム 演習2 pdbを用いたデバッグ ※jupyter notebookとGoogle Colaboratoryでは動作しません。 pdbモジュールを…

scikit-learnを用いた機械学習(Pythonの基礎 2/4)

<< scikit-learnを用いた機械学習(Pythonの基礎 1/4) 変数と標準出力 データ構造 リスト(Python 標準) リストの大きさ 要素へのアクセス numpy array numpy.arrayの大きさ スライス 数値演算 ソート pandas.DataFrame DataFrameからnumpy.arrayへの変…

scikit-learnを用いた機械学習(Pythonの基礎 1/4)

Pythonとは Anacondaを用いたPython環境の構築 VS codeを用いた開発 jupyter notebookを用いたインタラクティブ開発 Google colaboratoryを用いたインタラクティブ開発 Pythonとは Pythonは、近年、機械学習を用いたデータ解析やソフトウェアの研究開発にて…

異常行動検知とGANの雑メモ

Attention guided image to image translation 論文:https://papers.nips.cc/paper/7627-unsupervised-attention-guided-image-to-image-translation.pdf AC-GAN コード:https://github.com/hwalsuklee/tensorflow-generative-model-collections Future Fr…

Pythonによる機械学習8(Q学習の応用)

前回実装した強化学習の代表的な手法であるQ学習を、各グループで設定したタスクに応用してみましょう。 タスクは、OpenAI gymから選んでください。 gym.openai.com 宿題 MountainCarタスクを参考に、各グループで選定した課題に、Q学習を適用してみましょう…

Pythonによる機械学習7(Q学習 3/3)

【Pythonによる機械学習7(Q学習 3/3)】 Q学習の実行 演習3 宿題1 宿題2 Q学習の実行 演習3 これまでに実装した、discretizeState、updateQおよびselectActionをメインから呼び出し、Q学習を完成させましょう。 Qテーブルを更新するのには時間がかかる…

Pythonによる機械学習7(Q学習 2/3)

【Pythonによる機械学習7(Q学習 2/3)】 Q関数を用いた方策関数 演習2 Q関数を用いた方策関数 Q学習法により獲得したQテーブルを用いて、方策関数を定義します。代表的な方策関数としては、以下のように、貪欲方策と、貪欲方策があります。 演習2 RLク…

Pythonによる機械学習7(Q学習 1/3)

【Pythonによる機械学習7(Q学習 1/3)】 Q学習 Q学習の実装 演習1 Q学習 前回求めた漸化式表現を利用して、価値関数を更新する代表的な方法であるQ学習法を実装します。 以下は、最も単純な強化学習のタスクである2状態マルコフチェーンに、Q学習を適用…

Pythonによる機械学習6(強化学習の基礎 3/3)

【Pythonによる機械学習6(強化学習の基礎 3/3)】 強化学習のテンプレート 強化学習のテンプレートの実行 演習3 宿題 強化学習のテンプレート 次は強化学習のアルゴリズムの実装の準備に入りたいと思います。 いちから全て実装するのは難しいので、inte…

Pythonによる機械学習6(強化学習の基礎 補足)

【Pythonによる機械学習6(強化学習の基礎 補足)の目次】 WindowsのAnacondaへのOpenAI Gymのインストール手順 その他のgymの実行例 Windows subsystem for LinuxへのOpenAI Gymのインストール手順 WindowsのAnacondaへのOpenAI Gymのインストール手順 1…

Pythonによる機械学習6(強化学習の基礎 2/3)

【Pythonによる機械学習6(強化学習の基礎 2/3)の目次】 エピソード OpenAI Gym Mountain Carタスク 演習2 エピソード 猫の問題箱実験での猫のように、強化学習では試行錯誤を繰り返しながら、より高い報酬和の期待値を獲得する方策を探索します。強化…

Pythonによる機械学習6(強化学習の基礎 1/3)

今回は、まず、強化学習の基礎(教師あり学習との違い、動物の行動学習、定式化)について学びます。そして、演習で用いるベンチマークツールのopen AI Gymのセットアップを行います。【Pythonによる機械学習6(強化学習の基礎 1/3)の目次】 機械学習の…

Pythonによる機械学習5(グループ発表)

前回の宿題 感情分類および手書き文字画像の分類を参考に、各グループで選定した課題に、ニューラルネットワークを適用してみましょう。各グループにて以下の内容を発表してください。 1) 選択した課題の内容 2) 学習データと評価データの概要 3) ニューラル…

Pythonによる機械学習10(4/4)

<< Pythonによる機械学習10(3/4)【Pythonによる機械学習10(3/4)の目次】 モデル選択 モデル選択 カーネルモデルを最大限に活用するためには、データに合わせてガウスカーネルの幅や多項式カーネルの次数などのハイパーパラメータを調整する必…

tensorflow版のyolo2のインストールと学習

yolo2のtensorflow版がいくつかgithubに上がっているので、 thtrieuのdarkflowをインストールして、学習させてみた試してみた。thtrieuのdarkflow github.com インストール flowを用いた検出 flowを用いた学習 ネットワーク構成 インストール インストールの…

Tokyo Deep Learning Workshop2018

今日から4日間Tokyo Deep Learning Workshopに参加している。発表を聞いて気になったところをメモる。 http://www.ms.k.u-tokyo.ac.jp/TDLW2018/ Jun Zhu先生の発表 Bayesian Deep LearningのツールZhusuanの紹介.Tensorflow上で動く. http://zhusuan.rea…

vod-converterのxmlファイルの改行

以下のvod-converterを用いて、kittiからvodに変換し、出力されたxmlファイルには改行が無い。webで見ると改行を自動的に付加してくるようだが、viで開くと一行になっているので、とても読みにくい。 github.comつまり、こんな感じ。 <annotation><filename>006911.png</filename><folder>VOC2012</folder><segmented>0</segmented><size><depth>3</depth><width>1242</width><height></height></size></annotation>…

caffeの動作確認&デバッグ方法

pythonでpycaffeを実行すると、実際にcaffe内でconvやfc層の値やパラメータがどうなっているのかが見えにくいときがある。そんなときは、以下のように、self.solver.step(1)前後でpdbで止めて、self.solverを参照して中身を見ることができる。 import pdb pd…