機械学習

Boundary Equilibrium GAN(BEGAN)でいらすとや画像を生成してみる

Boudary Equilibrium GAN,略してBEGANと呼ばれる Arxiv: https://arxiv.org/abs/1703.10717 このBEGANを使って以下のようないらすとや画像を生成するというのが本記事の主旨。 完全にmode collapseしてしまった。 結構いろいろ試しているものの、パラメータ…

"How to Train a GAN" at NIPS2016 workshopのメモ

NIPS2016でのWorkshop on Adversarial Training「How to train a GAN」での, GANを学習させるTipsのまとめ。 Workshopの動画 (30分程度で軽めなので観てみると良いと思います) www.youtube.com 以下は登壇者による↓のメモ https://github.com/soumith/gan…

Tutorial on Variational Autoencodersを読む

Variational Autoencoders,略してVAEsと呼ばれる Arxiv: https://arxiv.org/abs/1606.05908 Tutorial on Variational Autoencoders(VAEs)を読み解いていこうと思う。 先人たちによる日本語の詳細な解説はネット上にゴロゴロあるので、 本記事は自分自身の理…

Wasserstein GAN(WGAN)でいらすとや画像を生成してみる

Wasserstein GAN,略してWGANと呼ばれる Arxiv: https://arxiv.org/abs/1611.02163 著者によるコード: https://github.com/martinarjovsky/WassersteinGAN このWGANを使って以下のようないらすとや画像を生成したというのが本記事の主旨。 本論文のcontribut…

UnrolledGANでいらすとや画像を生成してみる

Unrolled GAN Arxiv: https://arxiv.org/abs/1701.07875 これまで実装してきたGAN、DCGANでは学習の際にDiscriminatorが早く学習しすぎてしまうという問題があった. これに対するアプローチとして,Generatorに先取り学習をさせて,学習を促進させようとい…

CS224dのTensorflow Tutorialを読んでみる

Tensoflowの公式のtutorialは眺めたことはあるが, 今一度確認のため, CS224dのTensorflow tutorialを読んでみる. このメモは単なる写経です. CS224dが気になる人は上のリンクを直接たどって見てみると良いと思います. Tensorflowはnumpyと文法がそっく…

TensorFLowの基本演算

定数 import tensorflow as tf # 定数 a = tf.constant(2) b = tf.constant(3) with tf.Session() as sess: print("a: %i" % sess.run(a), "b: %i" % sess.run(b)) print("Addition with constants: %i" % sess.run(a+b)) print("Multiplication with consta…

Deep Convolutional GANs(DCGAN)をkerasで実装して、いらすとや画像を生成する

前回,GANを勉強して実装したので、その取り組みの続きとして、 DCGAN(Deep Convolutional GAN(DCGAN)を実装して遊んでみる。 DCGANの論文を読んでみたところ、GANの論文よりも読みやすかった。 またGANのときには省略されていたモデルの構造も書かれていた…

Generative Adversarial Networks(GAN)を勉強して、kerasで手書き文字生成する

Generative Adversarial Nets(GAN)はニューラルネットワークの応用として、結構な人気がある。たとえばYann LeCun(現在はFacebookにいる)はGANについて以下のように述べている。 “Generative Adversarial Networks is the most interesting idea in the …

【はじめてのパターン認識】第8章 サポートベクトルマシン

サポートベクトルマシン(SVM)とは、2クラス線形識別関数の学習法のこと。 サポートベクトルマシンの導出 SVMでは標準座標系を用いて考える。 クラスラベル付き学習データの集合をとする。 は教師データ、マージンをとすると、 $$ |w^{T}x_{i} + b| \geq K $$…

【はじめてのパターン認識】第7章 パーセプトロン型学習規則

2クラスの線形識別関数を求める古典的な手法に、パーセプトロンの学習規則がある。 識別関数のパラメータを逐次的に求めるこのアルゴリズムは、2クラスの学習データが線形分離可能であれば収束することが知られている。 これをパーセプトロンの収束定理とい…

【はじめてのパターン認識】第6章 線形識別関数

はじめてのパターン認識を読んでいる。 その個人的メモ。 はじめてのパターン認識作者: 平井有三出版社/メーカー: 森北出版発売日: 2012/07/31メディア: 単行本(ソフトカバー)購入: 1人 クリック: 7回この商品を含むブログ (3件) を見る 線形判別分析 1次…

【はじめてのパターン認識】第5章 k最近傍法

はじめてのパターン認識を読んでいる。 その個人的メモ。 はじめてのパターン認識作者: 平井有三出版社/メーカー: 森北出版発売日: 2012/07/31メディア: 単行本(ソフトカバー)購入: 1人 クリック: 7回この商品を含むブログ (3件) を見る 漸近仮定とkNN誤り…

LSTMで三角関数を組み合わせた周期関数を予測してみる

簡単な周期関数をLSTMネットワークに学習させ、予測させてみる。 環境 python:3.6.0 (Anaconda 4.3.1) keras:2.0.1 tensorflow: 1.0.1 予測させる周期関数 今回予測させる周期的な関数は、 周期の異なるsinとcosの和で作る。 (下図上段のオレンジと黄の曲線…

福くんと鈴木一真さんの画像分類問題をCNNで解く(訓練・テスト編)

これまではMNISTやIris等の既成のデータセットをもとにして問題を解いてきたが、 機械学習で一番苦労する部分は「データセットを作るところ」と噂でよく聞くので、 今回はデータセットを自分で作って分類問題を解いてみようと思う。 鈴木福くんと鈴木一真さ…

福くんと鈴木一真さんの画像分類問題をCNNで解く(データセット作成編)

これまではMNISTやIris等の既成のデータセットをもとにして問題を解いてきたが、 機械学習で一番苦労する部分は「データセットを作るところ」と噂でよく聞くので、 今回はデータセットを自分で作って分類問題を解いてみようと思う。 題材は何にすべきか、結…

【はじめてのパターン認識】第4章 確率モデルと識別関数

はじめてのパターン認識を読んでいる。 その個人的メモ。 はじめてのパターン認識作者: 平井有三出版社/メーカー: 森北出版発売日: 2012/07/31メディア: 単行本(ソフトカバー)購入: 1人 クリック: 7回この商品を含むブログ (3件) を見る 標準化 学習データ…

【はじめてのパターン認識】第3章 ベイズの識別規則

はじめてのパターン認識を読んでいる。 その個人的メモ。 はじめてのパターン認識作者: 平井有三出版社/メーカー: 森北出版発売日: 2012/07/31メディア: 単行本(ソフトカバー)購入: 1人 クリック: 7回この商品を含むブログ (3件) を見る 本章では、ベイズ…

【はじめてのパターン認識】第2章 識別規則と学習法の概要

はじめてのパターン認識を読んでいる。 その個人的メモ。 はじめてのパターン認識作者: 平井有三出版社/メーカー: 森北出版発売日: 2012/07/31メディア: 単行本(ソフトカバー)購入: 1人 クリック: 7回この商品を含むブログ (3件) を見る 識別規則の構成法 …

【はじめてのパターン認識】第1章 はじめに

特徴の型 パターン認識は、対象を観測し、識別に有効な特徴を抽出することから始まる。 観測される特徴は以下のように分類できる。 定性的特徴(非数値データ) 名義尺度(分類のための単なる名前) 順序尺度(順序関係を表す) 定量的特徴(数値データ) 比…

【読書メモ】深層学習(機械学習プロフェッショナルシリーズ)

深層学習(機械学習プロフェッショナルシリーズ)を読んだ。 コンパクトにまとまった良書。 その分、行間をある程度読む必要がある。 少し覚悟が必要。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04…

【MLP 深層学習】第8章 ボルツマンマシン

深層学習、通称青イルカ本の学習メモ。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る 知らなかったことや重要だと思ったと…

【MLP 深層学習】第7章 再帰型ニューラルネット

深層学習、通称青イルカ本の学習メモ。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る 知らなかったことや重要だと思ったと…

【MLP 深層学習】第6章 畳み込みニューラルネット

深層学習、通称青イルカ本の学習メモ。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る 知らなかったことや重要だと思ったと…

【MLP 深層学習】第5章 自己符号化器

深層学習、通称青イルカ本の学習メモ。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る 知らなかったことや重要だと思ったと…

【MLP 深層学習】第4章 誤差逆伝播法

深層学習、通称青イルカ本の学習メモ。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る 知らなかったことや重要だと思ったと…

【MLP 深層学習】第3章 確率的勾配降下法

深層学習、通称青イルカ本の学習メモ。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る 知らなかったことや重要だと思ったと…

【MLP 深層学習】第2章 順伝播型ネットワーク

深層学習、通称青イルカ本の学習メモ。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る 知らなかったことや重要だと思ったと…

【MLP 深層学習】第1章 はじめに

深層学習、通称青イルカ本の学習メモ。 深層学習 (機械学習プロフェッショナルシリーズ)作者: 岡谷貴之出版社/メーカー: 講談社発売日: 2015/04/08メディア: 単行本(ソフトカバー)この商品を含むブログ (13件) を見る 知らなかったことや重要だと思ったと…

LeNetのパラメータの可視化

LeNetは1998のLeCunによって発表されたネットワーク。 MNISTに対して、このLeNetの類似ネットワークを適用した時の、パラメータを可視化してみるというのが本記事の主旨。 今回使ったネットワーク構成を示す。 畳み込み層2つに、全結合層が2つ連なったもの。…

Keras(Tensorflow)でMNIST

KerasでMNIST手書き文字分類問題を試した。 実行環境 Python 3.6.0 Keras 1.2.2 Tensorflow 1.0.1 GeForce 780Ti コード ライブラリのインポート import numpy as np np.random.seed(123) from keras.models import Sequential from keras.layers import Den…

Python機械学習プログラミングを読んで覚えておきたいと思ったこと

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)作者: Sebastian Raschka,株式会社クイープ,福島真太朗出版社/メーカー: インプレス発売日: 2016/06/30メディア: 単行本(ソフトカバー)この商品を含むブログ …

誤差逆伝播法の数式を簡単なニューラルネットで理解する

誤差逆伝播法の数式をニューラルネットで追ってみる。 時々忘れてしまうので、備忘録として残しておく。 今回考えるニューラルネット 下記のニューラルネットを例に取る。 層への入力を、 層のアクティべーションを、 層から層への重みをとしている。 なお入…

Michael Nielsen著のオンライン書籍「ニューラルネットワークと深層学習」の翻訳に参加しました

日本語訳に参加させていただいた書籍は下記のリンクから読めます! オリジナル書籍:Neural Networks and Deep Learning 日本語版書籍:ニューラルネットワークと深層学習 量子コンピューティング分野の物理学者Michael Nielsenという方の執筆したオンライン…

機械学習入門(ボルツマン機械学習から深層学習まで)を読んで、覚えておきたいと思ったこと

平易な言葉で本質を教えてくれる本書のような情報源は貴重。 この類の本をどんどん読んで吸収していきたい。 鏡に美しさを示す関数を教えよう、というところから始まるのだが、 鏡が博識&有能すぎて教えるどころではないというところ。 順問題と逆問題 順問…

Michael NielsenのNeural Networks and Deep Learningを読んで、覚えておきたいと思ったこと

Michael Nielsen著のオンライン書籍Neural Networks and Deep Learningを読んで、 覚えておきたいと思ったことのメモ。 ゼロから作るディープラーニングのネタ元は、 CS231nとばかり思っていたけど、 今となっては、真のネタ元はこのオンライン書籍だと確信…

非線形領域をlinear classifierと2層Neural Networkで分類してみる

3種のラベルのうち1種が付与されている点列データを、 linear classifierと2層NNでそれぞれ分類させてみる。 Stanfordのオンライン教材CS231n Convolutional Neural Networks for Visual Recognitionを参考にしている。 Linear Classifier 入力データとパラ…

Stanfordの授業CS231nでニューラルネット、畳み込みニューラルネットを学ぶ

StanfordのCS231nという授業の教材を使って、機械学習を学んだ。 自分のメモのまとめ。 (写経に近いので注意) Module 1: Neural Networks Image Classification: Data-driven Approach, k-Nearest Neighbor, train/val/test splits L1/L2 distances, hyper…

【CS231n】Putting it together: Minimal Neural Network Case Study

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. この記事では、toy Neural Networkを実装する。 最初にシンプルなlinear classifierを作り、その次に2層NNへ拡張する Generating some data 簡単に線形分離できないdatasetを生成する 例として渦状のデ…

【CS231n】Neural Networks Part 3: Learning and Evaluation

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. 前回の記事では、層の結合やデータやloss functionなどNNの静的構造について確認した。 本記事では、NNのダイナミクス(パラメータを学習するプロセスやハイパーパラメータの決定方法)について学ぶ。 …

【CS231n】Neural Networks Part 2: Setting up the Data and the Loss

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. 本記事では,Neural Network(NN)を中心に扱う. Setting up the data and the model Linear Classification用からNN用へscore functionの拡張 linear mappingを繰り返しの中にnon-linearityを織り交ぜ…

【CS231n】Neural Networks Part1: Setting up the Architecture

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. 本記事では,Neural Network(NN)を中心に扱う. Quick intro linear classificationでは画像をクラスに分類するために、によって、各クラスのスコアを計算したのだった は行列、は入力ベクトル CIFAR-1…

【CS231n】Backpropagation, Intuitions

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. 本記事では,Backpropagation(誤差逆伝播法)を中心に扱う. Introduction 本セクションでは勾配とbackpropagationを直観的に理解してみる backpropagationとは、chain rule(連鎖律)を反復的に利用…

【CS231n】Optimization

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. 本記事では,Optimizationについて,下記項目を中心に扱う. Stochastic Gradient Descent Introduction 前セクションの展開 画像の生ピクセルをクラススコアにマッピングするscore function パラメー…

【CS231n】Linear classification

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. 本記事では,Linear Classificationについて,下記項目を中心に扱う. Support Vector Machine Softmax Linear Classification k-Nearest Neighborは以下の欠点があった 空間的な非効率性 分類器は全て…

【CS231n】Image Classification

Stanford大の教材CS231nを使ってNNやCNNを学ぶ. 本記事は,Image Classificationやdata-driven approachについて.下記項目などを学ぶ. Data-driven Approach k-Nearest Neighbor train/val/test splits Image Classification 画像分類問題とは,入力画像…

【Deep Learning】計算グラフによる誤差逆伝播法(Back propagation)の理解

背景 ニューラルネットの重みなどのパラメータ決定を勾配法で行う 勾配法の計算の際に損失関数の微分が必要 微分計算の高速化が求められる. その高速化のために誤差逆伝播法を用いるのが一般的 その誤差逆伝播法を数式ではなく,計算グラフから理解してみる…

【読書メモ】ゼロから作るDeep Learning

ゼロから作るDeep Learningを読んだ。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者: 斎藤康毅出版社/メーカー: オライリージャパン発売日: 2016/09/24メディア: 単行本(ソフトカバー)この商品を含むブログ (11件) を見る …

【ゼロから作るDeep Learning】8章 ディープラーニング

認識精度を高めるには MNISTに対する認識精度のランキング Classification datasets results MNISTに対しては、層をそこまで深くせずに最高精度の結果が得られている。 手書き数字という比較的単純な問題に対しては、ネットワークの表現力を高める必要がない…

【ゼロから作るDeep Learning】7章 畳み込みニューラルネットワーク

本章では畳み込みニューラルネットワーク(convolutional neural network)を学ぶ 全体の構造 これまでの全結合層 [Affine, ReLU]を繰り返し,最後に[Affine,Softmax] CNN [Conv, ReLU, Pooling]を繰り返し,最後の方で[Affine, ReLU], 最後に[Affine, Soft…