【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件) を見る 知らなかったことや重要だと思ったと…

jupyter notebook上でmatplotlibで描画するときに必要な記述

忘れるのでメモ。 %matplotlib inline import matplotlib.pyplot as plt

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…

CUDA 8.0とcuDNN 5.1をUbuntu 16.04にインストールする

CUDA Toolkit 8.0のインストール GPUが認識されてるか事前にチェック lspci | grep -i nvidia CUDA ToolkitからCUDA Toolkit 8.0を導入する。 CUDA Toolkitを以下のようにインストールする。 sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb sudo apt…

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

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

主成分分析(PCA)がなぜ分散共分散行列を対角化する固有値問題となるか

主成分分析(principal component analysis:PCA)とは? 教師なし学習の一つ。 データの分散(ばらつき)が大きいところ(主成分)を見つける操作。 つまり分散が大きいところが大事で、小さいところは気にしないようにする。 既存の特徴を組み合わせて分散…

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

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

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

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

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

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

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

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

【CS231n】Understanding and Visualizing Convolutional Neural Networks

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. Visualizing what ConvNets learn NNで学習した特徴量が解釈できないという批判に対し、 CNNを理解し、可視化するアプローチが提案されてきた。 本記事ではこれらを紹介していく Visualizing the activ…

【Survey】Maxout Networks

Maxout Networks pdf Ian J. Goodfellow, David Warde-Farley, Mehdi Mirza, Aaron Courville, Yoshua Bengio Abstract モデルの汎化のためのdropoutというテクニックがある. 我々はdropoutに加えるテクニックとして, maxout というシンプルなモデルを考案…

【CS231n】Convolutional Neural Networks: Architectures, Convolution / Pooling Layers

Stanford大の教材CS231nを使ってNNやCNNを学んでいる. この記事では、CNNの概要を学ぶ。 CNNはこれまで学んできたNNとほとんど変わらない。 CNNの特徴は、入力データがほぼ決まって画像であることである。 画像の性質を使ったエンコードを用いて特徴量を抽…

非線形領域を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は以下の欠点があった 空間的な非効率性 分類器は全て…

はてブmarkdown記法で数式を記述する方法

はてなブログで数式記述にはクセがあり,非常に使いにくい. テンプレをメモしておく. 基本 texに準ずる記法 わからない場合はまずtexの用法でググると良い 文中に埋め込むときは $ または \( で囲む. 独立した段落とするときは $$ または \[ で囲む. 記…

【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…

【ゼロから作るDeep Learning】6章 学習に関するテクニック

本章では,ニューラルネットの学習のためのテクニックを学ぶ 最適な重みパラメータを探索する最適化手法 重みパラメータの初期値 ハイパーパラメータの設定方法 過学習への対応策 Weight Decoy Dropout Batch Normalization 確率的勾配降下法(SGD:stochast…

【ゼロから作るDeep Learning】5章 誤差逆伝播法

誤差逆伝播法 数値微分による勾配の計算は,実装が平易だが,計算に時間がかかるという難点がある そこで微分計算を効率的に行う誤差逆伝播法の出番となる 誤差逆伝播法は色んな分野で使われている 天気予報 数値的安定性の分析 誤差逆伝播法の理解の方法は2…

【ゼロから作るDeep Learning】4章 ニューラルネットワークの学習

本章では,ニューラルネットワークの学習を扱う. 学習とは「訓練データから最適な重みパラメータの値を自動で獲得する」こと. データから学習する ニューラルネットワークの特徴は,データから学習できること ニューラルネットワークのパラメータは数千,…

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

本章ではニューラルネットワークが紹介がされている. ニューラルネットワークは,多層パーセプトロンに活性化関数の概念が加わったもの(と言える) ニューラルネットワークの例 入力層 中間層 隠れ層ともいう 出力層 パーセプトロン パーセプトロンにおい…

【ゼロから作るDeep Learning】2章 パーセプトロン

本章ではパーセプトロン(parceptron)というアルゴリズムが紹介されている。 このパーセプトロンが、後々学ぶニューラルネットワークやディープラーニングのための基礎的な概念となっている。 パーセプトロンとは 複数の信号を入力として受取り,1つの信号…

【ゼロから作るDeep Learning】1章 Python入門

本章ではPython(とNumPy、Matplotlib)が紹介されている。 Numpyにはブロードキャストという形状の異なる配列の演算が可能となる機能がある たとえば行列とスカラ値の掛け算を記述すると、スカラ値が行列に拡大されて演算が行われる 詳しくは下記を見ておく…

【プログラミング言語C++ by Bjarne Stroustrup】第3章 C++を探検しよう:抽象化のメカニズム

はじめに クラス 具象型 抽象型 あとで定義される具象クラスの純粋なインターフェース 実装の詳細には一切関与しない クラス階層には以下に示す2つの利点がある インターフェース継承(interface inheritance) 派生クラスのオブジェクトは,基底クラスのオブ…

【C++】constとconstexprの違い

個人メモ. 下記から引用 http://kaworu.jpn.org/cpp/constexpr https://cpprefjp.github.io/lang/cpp11/constexpr.html C++の定数 C++の定数は2種類ある コンパイル時定数 コンパイル時に値が決定されると規格によって定められた定数 固定長配列のサイズや…

【プログラミング言語C++ by Bjarne Stroustrup】第2章 C++を探検しよう:基本

型 変数の初期化 =で初期化する形式がCから伝統的に行われてきたが, どれを使うか迷うのなら,並びを{}で囲む形式の方を使うとよい. 情報が欠落する縮小変換を避けられる. int i1 = 7.2; // 縮小変換 int i2 {7.2}; // エラー:浮動小数点から整数への変換…

【プログラミング言語C++ by Bjarne Stroustrup】第1章 はじめに

C++の設計は以下に示す両方を提供するという考えに基づいている 組込の演算と型をハードウェアに直接マッピングすること 使いやすくて柔軟な抽象化のメカニズム The Design and Evolution of C++ [Stroustrup, 1994]でも紹介したC++の設計思想 C++よりも下位…

【読書メモ】英単語のこんな意味,知ってますか

「英単語のこんな意味,知ってますか」を読んで,学んだことをメモ. ear 意味 実,穂 例 They began to gather in ears of rice. 稲穂に集まり始めた feel 意味 (直接)触ってみる 例 Feel whether it’s hot. それが熱いか触ってごらん service 意味 兵役…

【サーベイ】Shape and Friction Recognition of 3D Virtual Objects by Using 2-DOF Indirect Haptic Interface(IEEE World Haptic Conference 2015)

本エントリは ヒューマンコンピュータインタラクション論文紹介 Advent Calendar 2016の18日目です。 2015年のWorld Haptic Conference(WHC)で発表された, 「Shape and Friction Recognition of 3D Virtual Objects by Using 2-DOF Indirect Haptic Interfa…

プロジェクトマネジメント アンチパターンのまとめ

プロジェクトマネジメントのアンチパターン(Project Management Antipattern)をまとめた. 基本的に下記の本を邦訳した内容になっている. https://www.amazon.com/AntiPatterns-Refactoring-Software-Architectures-Projects/dp/0471197130 プロジェクト…

【プロマネ アンチパターン】Email is Dangerous

どんな問題? Emailは潜在的な危険性をはらんでいる 機密情報の伝達には不適切 感情的な論争にも不適切 Emailは下記の点でよろしくない 機密情報が読んでほしくない人に伝わる 多くの人に瞬時に伝わる The Washington Postに載るくらいの気持ちで書く 永遠に…

【プロマネ アンチパターン】The Feud

Feudとは争い,反目,確執のこと どんな問題? マネージャー間の衝突 開発者は生産的なコミュニケーションを欠く 技術移転ができなくなる 組織全体の生産性とイメージは低下する どう解決する? pizza partyで解決する 大抵の問題はオフィスで談笑して解決す…

【プロマネ アンチパターン】Fire Drill

どんな問題? 設計と開発が遅延してしまうことはよくある 管理側が開発者の進捗を止めてしまう 「待て」と指示する 不明瞭な指示を与える 外的要因でプロジェクトの方向性が変化する Fire Drillの始まり プロジェクトの納品キャンセルの危機が迫る 管理側が…

【プロマネ アンチパターン】Throw it over the Wall

どんな問題? 文書は説明的でない事が多い 著者のvisionやinsightを理解すること = 文書を理解すること 人の性向はそれぞれ 個人の性向を理解すると,その人の仕事を理解できる ガイドラインは完璧ではない 予期しない結果につながることも 文書の目的を理解…