ブックマーク / aidiary.hatenablog.com (23)

  • PyTorch (11) Variational Autoencoder - 人工知能に関する断創録

    今回は、Variational Autoencoder (VAE) の実験をしてみよう。 実は自分が始めてDeep Learningに興味を持ったのがこのVAEなのだ!VAEの潜在空間をいじって多様な顔画像を生成するデモ(Morphing Faces)を見て、これを音声合成の声質生成に使いたいと思ったのが興味のきっかけだった。 今回の実験は、PyTorchの公式にあるVAEのスクリプト を自分なりに読み解いてまとめてみた結果になっている。 180221-variational-autoencoder.ipynb - Google ドライブ さっそく実験!いつものimport。 import os import numpy as np import torch import torch.nn as nn import torch.utils.data import torch.optim a

    PyTorch (11) Variational Autoencoder - 人工知能に関する断創録
    yag_ays
    yag_ays 2018/03/03
  • PyTorch (7) VGG16 - 人工知能に関する断創録

    今回は、学習済みのVGG16を使ってImageNetの1000クラスの画像分類を試してみた。以前、Kerasでやった(2017/1/4)ことのPyTorch版。 180208-vgg16.ipynb - Google ドライブ import torch import torch.nn as nn import torch.optim as optim from torch.autograd import Variable import torchvision from torchvision import datasets, models, transforms import json import numpy as np from PIL import Image モデルのロード VGG16は vgg16 クラスとして実装されている。pretrained=True にするとImageNe

    PyTorch (7) VGG16 - 人工知能に関する断創録
    yag_ays
    yag_ays 2018/02/14
  • PyTorch (1) リンク集 - 人工知能に関する断創録

    今年の目標(2018/1/1)で宣言したとおり今年はPyTorchを使えるようにしていこうと思ってます! ここにPyTorchのリソースをまとめる予定です。一気に追加すると収拾つかないため内容を吟味してから追加してこうと思います。外部リンク集の2つのサイトはPyTorchに関するチュートリアルや論文の再現実装など大量のリソースがまとまっていてとてもおすすめです。あと公式のチュートリアルはとてもしっかり書かれていて勉強になります。こちらもおすすめ。 PyTorch - PyTorch Forums - 家フォーラム PyTorch Official Tutorials - 家のチュートリアル PyTorch Official Examples - さまざまな実装例 外部リンク集 The Incredible Pytorch - チュートリアルから各種アルゴリズムの実装まで大量に紹介

    PyTorch (1) リンク集 - 人工知能に関する断創録
    yag_ays
    yag_ays 2018/01/28
  • 2018年の目標 - 人工知能に関する断創録

    明けましておめでとうございます。ブログ書くの6ヶ月ぶりでずいぶんご無沙汰していますがちゃんと生きています (^^; 2017年の振り返り 2017年はいろいろなことがありました。 3月に運転免許証をゲットしました。そろそろ1年経つので初心者マーク取れそうです(^o^)v 3月に某電機メーカを退職して、4月1日付けで株式会社DeNAに転職しました。機械学習人工知能の研究開発をしているAIシステム部で働いています。データマイニング+Web@東京を主催している@hamadakoichi さんやコンピュータビジョン研究者の @yu4u さんと同じ部署です。転職活動するまでDeNAについてほとんど知らなかったので自分でも当に意外です。自分の選択とは言え、人生何が起こるか当にわかりません。 転職したのは、Deep Learningの可能性の探求に気で取り組みたいと思ったからです。前職では音声合

    2018年の目標 - 人工知能に関する断創録
    yag_ays
    yag_ays 2018/01/01
  • Practical Deep Learning for Coders - 人工知能に関する断創録

    最近、fast.aiのPractical Deep Learning for CodersというMOOCを受講している。 この講座は 無料 動画形式の講義(1回2時間というボリューム) Jupyter NotebookとKerasを使用 CNN、Finetuning、VGG16、ResNet、RNNなどが実践的な例題を通して学べる 実務家がDeep Learningで自分の問題を解決できることが目標 という特徴がある。講義内容は高度で実践的なものが多い印象。例えば、Lesson1でMNISTと思いきや・・・いきなりKaggleのDogs vs. CatsをVGG16 + Finetuningで解いてKaggleに投稿するところまでが課題になっている。これさえできれば画像認識が必要ないろんな課題に同じ技術を適用できるとのこと。 今はまだPart1しかないが、ForumのなかでPart2の動画

    Practical Deep Learning for Coders - 人工知能に関する断創録
    yag_ays
    yag_ays 2017/05/20
  • 15周年記念 - 人工知能に関する断創録

    2017年2月21日で人工知能に関するブログ(というか自分のWebサイト)を初めてから15周年を迎えます。基的に飽きっぽい性格ですが、こんなに続いたのは読んで応援してくださったみなさんのおかげだと思います。ありがとうございます! ここら辺で15年を振り返ってみるのも面白いんじゃないかと思いインターネットアーカイブを掘り起こしてまとめてみることにしました。個人的な話なのであんまり興味ないかもしれないですけど(^^; /tmp(2002年~) 「全世界に公開できるWebサーバ立てたよ。みんな何か書いてみよう!」みたいな話があって書き始めたのがきっかけです。研究室に配属されたてだったのでこれからやる研究の履歴をまとめていこうかなと思っていました。あと文章を書くのが苦手だったので抵抗をなくそうという趣旨でした。当時はHTMLファイルを書いてFTPでアップロードという時代だったのでとってもシンプル

    15周年記念 - 人工知能に関する断創録
    yag_ays
    yag_ays 2017/02/15
  • WindowsでMeCab Pythonを使う - 人工知能に関する断創録

    語の文章を単語に分割するには形態素解析を使います。日語の形態素解析には、ChaSen、MeCab、Yahoo!形態素解析などがあります。ナイーブベイズを用いたブログ記事の自動分類(2010/7/3)でMeCabをPythonから使う方法を簡単にまとめましたが、MeCabはよく使うので再度まとめ直して独立したエントリにしました。Yahoo!形態素解析の使い方は、Yahoo!形態素解析API(2009/4/15)で書きました。 Windowsへの導入方法 MeCabは高性能な形態素解析モジュールでPythonRubyPerlJavaなどさまざまな言語から使えます。Mac OS XとLinuxでは簡単にコンパイルしてインストールができるのですが、WindowsではMinGWやVisual Studioのインストール、コードの修正が必要でかなり面倒くさい。そこで、Pythonモジュー

    WindowsでMeCab Pythonを使う - 人工知能に関する断創録
    yag_ays
    yag_ays 2015/11/12
  • Earth Mover's Distance (EMD) - 人工知能に関する断創録

    Earth Mover's Distance (EMD) について調べたことを整理しておきます。EMDは、ユークリッド距離のような距離尺度の一つで、二つの分布の間の距離を測ることができます。言語処理ではあまり聞いたことなかったのですが、画像処理や音声処理では比較的有名な距離尺度のようです。 EMDが使える問題設定は下図のようになります。 EMDは特徴量と重みの集合(シグネチャと呼ぶ)で与えられる分布Pと分布Qの間の距離です。ここで、特徴量間では距離 が定義されているのが前提です。特徴量がベクトルのときはユークリッド距離、特徴量が確率分布のときはカルバック・ライブラー距離(情報量)などです。EMDは、特徴量の集合が2つ与えられたときに、1個1個の特徴量間の距離をもとに、特徴量集合間の距離を求められるんですね。これはすごい。 重みは具体的な応用によって使い方が変わりますが、その特徴量の重要度を

    Earth Mover's Distance (EMD) - 人工知能に関する断創録
    yag_ays
    yag_ays 2015/11/11
  • Chainerによる多層パーセプトロンの実装 - 人工知能に関する断創録

    これまでDeep LearningのアルゴリズムをTheanoで実装してきた(2015/4/29)けれど、ここらで巷で大人気のライブラリChainerにも手を出してみた。Theanoの勉強を始めたあとすぐにChainerが公開された(2015/6/9)がユーザや情報が増えるまで待っていた感じ(笑)最近はコードや実験結果などを公開してくれる人が増えてきたので非常に参考になっている。目についたものはてぶに登録しているので、興味を持った手法はがしがし勉強して追試していきたい。 Chainerのバージョンは1.3.2をベースにしている。1.3からPyCUDA/scikit-cudaを独自ライブラリのCuPyに置き換えたとのことで、以前のコードは少し修正しないと動かないようだ。その分、1.3からはインストールがシンプルになっていてとてもうれしい。1.1のころは、Chainerと直接関係ないPyCUD

    Chainerによる多層パーセプトロンの実装 - 人工知能に関する断創録
    yag_ays
    yag_ays 2015/10/07
  • Machine Learning with Scikit Learn (Part I) - 人工知能に関する断創録

    今年の7月に開催されたSciPy2015の講演動画がEnthoughtのチャンネルで公開されている。今年も面白い講演が多いのでいろいろチェックしている。 今年の目標(2015/1/11)にPython機械学習ライブラリであるscikit-learnを使いこなすというのが入っているので、まずはscikit-learnのチュートリアルを一通り見ることにした。 Part IとPart IIを合わせると6時間以上あり非常に充実している。IPython Notebook形式の資料やデータは下記のGitHubアカウントで提供されている。ノートブックをダウンロードし、実際に手を動かしながらチュートリアルを進めると理解がより進むかもしれない。 あとで振り返りやすいように内容を簡単にまとめておきたい。 1.1 Introduction to Machine Learning 機械学習システムの流れ。教師あ

    Machine Learning with Scikit Learn (Part I) - 人工知能に関する断創録
    yag_ays
    yag_ays 2015/08/11
  • 人工知能を実現する学習アルゴリズムに必要な能力 - 人工知能に関する断創録

    今年は、Deep Learningを研究する予定(2014/1/4)だったのだけれど、多層パーセプトロンまで到達した(2014/2/5)ところで少々(?)足踏みしている。Deep Learningの構成要素であるボルツマンマシンを理解するのに手間取っているためだ。ボルツマンマシンの理解には、マルコフ確率場やMCMCの理解が必要なことがわかったので少し廻り道してモンテカルロ法を先に勉強(2014/6/20)していたというわけ。 ただ、そればかりでは少々退屈になってきたので少し先回りして Deep Learning の先駆者のBengioさんが書いた論文 Learning Deep Architectures for AI を勉強している。示唆に富む見解が多いのであとで振り返られるように記録しておきたい。 まずは、1.1節のDesiderate for Learning AIの部分。人工知能

    人工知能を実現する学習アルゴリズムに必要な能力 - 人工知能に関する断創録
  • Pythonによるモンテカルロ法入門 - 人工知能に関する断創録

    PRMLの11章で出てくるマルコフ連鎖モンテカルロ法(Markov chain Monte Carlo methods: MCMC)。ベイズでは必須と呼ばれる手法だけれどいまいち理屈もありがたみもよくわからなくて読み飛ばしていました。 最近、ボルツマンマシンを勉強していて、ベイズと関係ないのにマルコフ連鎖やらギブスサンプラーやらが出てきて格的にわからなくなってきたのでここらで気合を入れて勉強し直すことにしました。 参考にした書籍は「Rによるモンテカルロ法入門」です。PRMLと同じく黄色いなので難易度が高そう・・・このはR言語を使って説明がされていますが、それをPythonで実装しなおしてみようかなーと計画中。numpy、scipyの知らなかった機能をたくさん使うので勉強になりそう。 ただRにしかないパッケージを使われると途中で挫折する可能性が高い・・・あと内容が難しすぎて途中で挫折す

    Pythonによるモンテカルロ法入門 - 人工知能に関する断創録
    yag_ays
    yag_ays 2014/06/21
  • 共役勾配法によるニューラルネットのパラメータ推定 - 人工知能に関する断創録

    Courseraの機械学習ネタの続き。前回は、ロジスティック回帰のパラメータ推定(2014/4/15)に共役勾配法(Conjugate Gradient: CG法)を使いました。今回はより複雑なニューラルネット(多層パーセプトロン)のパラメータ推定に共役勾配法を適用してみました。 以前、多層パーセプトロンで手書き数字認識の実験をしたとき(2014/2/1)は、共役勾配法ではなく、勾配降下法(Gradient Descent)を用いてパラメータの更新式を自分で書いていました。 self.weight1 -= learning_rate * np.dot(delta1.T, x) self.weight2 -= learning_rate * np.dot(delta2.T, z) 勾配降下法は、学習率(learning rate)を適切な値に設定しないと収束が遅い、発散するなど欠点があります

    共役勾配法によるニューラルネットのパラメータ推定 - 人工知能に関する断創録
    yag_ays
    yag_ays 2014/05/23
  • 2014年の目標 - 人工知能に関する断創録

    2014年にやりたいなと思っていることをまとめてみた。今年は自由に使える時間が今までより増える予定なので欲張ってみました(笑) (1) 複雑系の深耕 去年から続けているComplexity Explorer(2013/10/21)のコースを引き続き受講する。今年は、以下の講義が公開される予定。 Introduction to Dynamical Systems and Chaos (2014/1/6 - 2014/2/28) Mathematics for Complex Systems (Summer, 2014) Nonlinear Dynamics: Mathematical and Computational Approaches (Fall, 2014) Agent-Based Modeling in NetLogo (未定) また、複雑系の分野で提案された様々なモデルを自分で一

    2014年の目標 - 人工知能に関する断創録
    yag_ays
    yag_ays 2014/01/07
  • カイ二乗値を用いた特徴選択 - 人工知能に関する断創録

    相互情報量を用いた特徴選択(2010/6/19)のつづきです。今回は、相互情報量ではなく、カイ二乗値を用いて特徴語を抽出してみます。カイ二乗検定は独立性の検定によく使いますけど、特徴語の抽出にも応用できるってのははじめて知りました。結局のところ相互情報量もカイ二乗値もカテゴリと単語がどれくらい依存しているかを表す尺度なのでアプローチは似ている感じがします。IIRの13.5を参考にして実装します。 カイ二乗値 カイ二乗値の定義は、 です。NやEが出てきますが、下のようなクロス表を用いて計算します。たとえば、単語「iPhone」とカテゴリ「IT」のカイ二乗値を求めたいとき、クロス表は下のようになります。たとえば、カテゴリがITで単語iPhoneを含む文書はデータ中にN11個あるなどと解釈します。 カテゴリがITである カテゴリがITでない 計 単語iPhoneを含む N11 (E11) N10

    カイ二乗値を用いた特徴選択 - 人工知能に関する断創録
    yag_ays
    yag_ays 2013/10/23
  • 混合ガウスモデルとEM - 人工知能に関する断創録

    今回は、9.2の混合ガウス分布のところです。混合ガウス分布はK個のガウス分布の線形重ね合わせで表されます。 ここで、π_kを混合係数と言い、k番目のガウス分布を選択する確率を表します。π_kは確率の条件を満たし、すべてのkについて足し合わせると1になります。ここら辺は、2.3.9の混合ガウス分布でも出てきました。この章では、混合ガウス分布を潜在変数zを導入して再定式化しています。zはK次元ベクトルで、K個の要素のうちどれか1つだけ1を取り、他は0、つまり1-of-K表現です。zはデータxがどのガウス分布から生成されたかを表し、下のような分布になります。 そして、式(9.12)のようにこのzを陽に用いた形でp(x)を求めてもやっぱり混合ガウス分布の式 (9.7) になります(演習9.3)。 つまり、混合ガウス分布を「潜在変数zを含む別の式」で表現できたってことですね。何でこんなことするのか不

    混合ガウスモデルとEM - 人工知能に関する断創録
    yag_ays
    yag_ays 2013/10/13
  • ライフゲームの世界 - 人工知能に関する断創録

    ニコニコ動画の複雑系コミュニティの発起人のはむくんがライフゲームの世界というとても面白い動画を投稿されています。Twitterでは何度かツイートしてたけど完結したのでブログでも紹介させていただきます。 ライフゲームの世界1 John Horton Conwayが提案したライフゲーム(Conway's Game of Life)の基的なルールを解説しています。また頻繁に現れる4種の物体(ブロック、蜂の巣、ブリンカー、グライダー)を紹介しています。最後の作品紹介は、P416 60P5H2V0 gunというすさまじいパターンが出てきます。グライダー銃から発射したグライダーたちが滑走路を通ります。グライダーの集合先では、発射された複数のグライダーが合体して宇宙船が組み立てられます。 ライフゲームの世界2 いろんな振動子(パルサー、タンブラー、銀河)が鑑賞できます。作品紹介では大量の振動子が勢揃い

    ライフゲームの世界 - 人工知能に関する断創録
    yag_ays
    yag_ays 2013/01/05
  • LOS追跡 - 人工知能に関する断創録

    照準(Line-of-Sight: LOS)法を使った追跡アルゴリズムを実装してみます。環境はタイルベースです。LOS法を使うと獲物に対して最短経路(つまり直線)で移動できます。最短経路を求めるためにブレゼンハムアルゴリズム(2005/4/2)を使います。獲物(青い点)は矢印キーで動かせます。追跡者から獲物への最短経路は黄色い点で表示されてます。単純な追跡アルゴリズムと経路を比べてみてください。 los.jar ブレゼンハムによる経路設定 ブレゼンハムアルゴリズムは始点と終点間を結ぶ直線を求めるアルゴリズムです。直線は2点間の最短経路です。つまり、この直線上をたどって獲物を追いかければ最短経路で追いかけることになります。直線の始点は追跡者の位置、終点は獲物の位置です。まず、ブレゼンハムアルゴリズムを使って直線の座標を求めます。Predatorクラスの buildPathTo()がそうです。

    LOS追跡 - 人工知能に関する断創録
    yag_ays
    yag_ays 2012/03/24
  • 20 Newsgroupsで分類精度を評価 - 人工知能に関する断創録

    ナイーブベイズを用いたテキスト分類(2010/6/13)の続きです。前回、実装したナイーブベイズの分類精度を評価してみます。テキスト分類のベンチマークとして使われるのは Reuters-21578 20 Newsgroups といったデータセットです。今回は、ナイーブベイズの分類精度を20 Newsgroupsで評価してみたいと思います。論文は散々読んだけど自分で試すのは初めてなんだよなー。 20 Newsgroups http://qwone.com/~jason/20Newsgroups/ Usenet*1から収集した約20000文書、20カテゴリのデータセットです。カテゴリは下の20個。まあ何となくどんなカテゴリなのかわかりますね。おおまかにcomp、rec、sci、talkに分けられるので4カテゴリとして扱うこともあるようです。 comp.graphics comp.os.ms-w

    20 Newsgroupsで分類精度を評価 - 人工知能に関する断創録
    yag_ays
    yag_ays 2012/02/03
  • ラングトンの自己複製オートマトン - 人工知能に関する断創録

    ついにやった!ループが自己複製をしている。 ラングトンの日記(1979/10/26) ラングトンの自己複製オートマトンは、ラングトン・ループ(Langton's Loops)と呼ばれます。ライフゲームと同じ二次元のセル・オートマトン空間上でループが増殖していきます。下が増殖の様子を撮影した動画です。もっとよくみたいときは後で掲載するPythonスクリプトを実行してみてください。 この自己複製するループは、クリストファー・ラングトン(Christopher Langton)という人が提案しました。ラングトンは、人工生命(Artificial Life)という研究分野の創始者です。 こういう複製はトップダウンでルールを与えれば簡単にできます。たとえば、腕を10ピクセル伸ばしたら左に90度曲げるを繰り返し、ループが完成したら切り離す。でもこれではまったく面白くない!ラングトンのループのすごいとこ

    ラングトンの自己複製オートマトン - 人工知能に関する断創録
    yag_ays
    yag_ays 2012/01/23