人工知能に関する断創録

このブログでは人工知能のさまざまな分野について調査したことをまとめています(更新停止: 2019年12月31日)

Deep Learning

Deep Learningの訓練終了をSlackに通知する方法

Deep Learningの訓練終了など任意のメッセージを特定のSlackチャネルに投稿できるボットを作りました。 Yatta Kun プログラミングは不要で curl というコマンドラインツールから簡単に投稿できるので非常に便利です。可愛いくて便利なので作り方を紹介します…

やりたいことリスト

最近はすることリスト(TODO)に追いまくられていて落ち着けなかったので、とりあえず直近でやってみたい・調査してみたいと思ってメモしていたことをまとめてみた。他にもあったかもしれないけどとりあえず! Deep Learning fast.ai のレクチャービデオを全…

Damped Sine Wave Prediction Problem

Long Short-Term Memory Networks With Python(2018/8/20)のつづき。 今回は、Damped Sine Wave Prediction Problemという時系列予測のタスクを対象にKerasとPyTorchでStacked LSTMの実装方法を比較してみます。 減衰するサイン波を系列データとみなして、…

Echo Sequence Prediction Problem

Long Short-Term Memory Networks With Python(2018/8/20)のつづき。 今回は、Echo Sequence Prediction Problemという単純なタスクを対象にKerasとPyTorchのVanilla LSTMの実装方法を比較してみます。 Echo Sequence PredictionProblem Echo Sequence Pre…

Long Short-Term Memory Networks With Python

最近、仕事でRNNを扱うアプリケーションが多くなっています。そのようなわけで、今回からしばらくRNN(Recurrent Neural Network)についてまとめていこうと思います。参考資料は、 です*1。 この本は、RNNの様々なアーキテクチャを Keras で実装して解説し…

Freesound General-Purpose Audio Tagging Challenge

最近、Kaggle始めました。登録自体は2年前にしてたのですが、興味起きなくてタイタニックやった後にずっと放置してました (^^; 今回、取り組んだのはFreesound General-Purpose Audio Tagging Challengeという効果音に対して3つのタグをつけるコンペです。2…

モダリティを超えて

社内の輪講会でマルチモーダル深層学習の研究動向について発表する機会があったので資料を公開します。Deep Learningが言語・画像・音声・制御・その他のモダリティを統合することで、今まで想像もできなかったような面白いアプリケーションがたくさん出てく…

PyTorch (16) 文字レベルRNNで人名の分類

前回からずいぶん時間が空いてしまった (^^;) 今回からテキストや音声など系列データを扱う手法に進んでいこうと思っています。 最初のお題として文字レベルのRecurrent Neural Network (RNN) を試しました。PyTorchチュートリアルの Classifying Names with…

PyTorch (15) CycleGAN (horse2zebra)

今回はCycleGANの実験をした。CycleGANはあるドメインの画像を別のドメインの画像に変換できる。アプリケーションを見たほうがイメージしやすいので論文の図1の画像を引用。 モネの絵を写真に変換する(またはその逆) 馬の画像をシマウマに変換する(または…

PyTorch (14) GAN (CelebA)

今回はDCGANをCelebAのデータで試してみた。このデータもよく見るけど使うの始めてだな。これまでのMNIST(2018/3/4)やFashion MNISTのGANと違ってカラー画像でサイズも大きいので少し修正が必要。 180303-gan.ipynb - Google ドライブ CelebA dataset Cele…

PyTorch (13) GAN (Fashion MNIST)

今回はDCGANをFashion MNISTのデータで試してみた。このデータは使うの始めてだな〜 画像サイズがMNISTとまったく同じで 1x28x28 なのでネットワーク構造は何も変えなくてよい (^^;) 今回は手抜きして変えたところだけ掲載します。 180303-gan-mnist.ipynb -…

PyTorch (12) Generative Adversarial Networks (MNIST)

前回(2018/2/28)の最後で次はConditional VAEだと言っていたけど思いっきり無視して (^^;) 今回はGenerative Adversarial Networks (GAN) やろう。いくつかのデータセットで実験しようと思っているけど今回は最初ということでMNISTから。 今回の実装は正確…

PyTorch (11) Variational Autoencoder

今回は、Variational Autoencoder (VAE) の実験をしてみよう。 実は自分が始めてDeep Learningに興味を持ったのがこのVAEなのだ!VAEの潜在空間をいじって多様な顔画像を生成するデモ(Morphing Faces)を見て、これを音声合成の声質生成に使いたいと思った…

PyTorch (10) Autoencoder

Autoencoderの実験!MNISTで試してみよう。 180221-autoencoder.ipynb - Google ドライブ 28x28の画像 x をencoder(ニューラルネット)で2次元データ z にまで圧縮し、その2次元データから元の画像をdecoder(別のニューラルネット)で復元する。ただし、一…

PyTorch (9) Transfer Learning (Dogs vs Cats)

前回(2018/2/17)は、アリとハチだったけど、今回はイヌとネコでやってみよう。 180209-dogs-vs-cats.ipynb - Google ドライブ vs. (*^_^*) import numpy as np import matplotlib.pyplot as plt import torch import torch.nn as nn import torch.optim as…

PyTorch (8) Transfer Learning (Ants and Bees)

今回は、公式にあるPyTorch TutorialのTransfer Learning Tutorialを追試してみた! 180205-transfer-learning-tutorial.ipynb - Google ドライブ 前回(2018/2/12)取り上げたVGGやResNetのような大規模な畳み込みニューラルネット(CNN)をスクラッチ(ラ…

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.auto…

PyTorch (6) Convolutional Neural Network

今回は畳み込みニューラルネットワーク。MNISTとCIFAR-10で実験してみた。 MNIST import numpy as np import torch import torch.nn as nn import torchvision.datasets as dsets import torchvision.transforms as transforms # Hyperparameters num_epochs…

PyTorch (5) Multilayer Perceptron

今回は多層パーセプトロンでMNIST。おなじみ。 import torch import torch.nn as nn import torchvision import torchvision.datasets as dsets import torchvision.transforms as transforms # Hyperparameters input_size = 784 hidden_size = 500 num_cla…

PyTorch (4) Logistic Regression

次は〜ロジスティック回帰(Logistic Regression)!ロジスティック回帰は、回帰とつくけど分類のアルゴリズムで、隠れ層がなく、活性化関数にシグモイド関数(2クラス分類のとき)、ソフトマックス関数(多クラス分類のとき)を使ったニューラルネットとし…

PyTorch (3) Linear Regression

まずは基本ということで線形回帰(Linear Regression)から。人工データとBoston house price datasetを試してみた。まだ簡単なのでCPUモードのみ。GPU対応はまた今度。 人工データセット import torch import torch.nn as nn import numpy as np import mat…

PyTorch (2) 自動微分

PyTorchの自動微分を試してみた。 import numpy as np import torch import torch.nn as nn まずは必要なライブラリをインポート。 # テンソルを作成 # requires_grad=Falseだと微分の対象にならず勾配はNoneが返る x = torch.tensor(1.0, requires_grad=Tru…

PyTorch (1) リンク集

今年の目標(2018/1/1)で宣言したとおり今年はPyTorchを使えるようにしていこうと思ってます! ここにPyTorchのリソースをまとめる予定です。一気に追加すると収拾つかないため内容を吟味してから追加してこうと思います。外部リンク集の2つのサイトはPyTor…

Speech and Audio @ NIPS2017

PFN主催のNIPS2017読み会において Speech and Audio というテーマで発表してきました。 NIPS2017報告 SPEECH & AUDIO from Koichiro Mori ★初SlideShare★ 今回は複数の論文をまとめたテーマ発表を入れると聴いたのでどのテーマにするか悩みました。最初は、…

Dogs vs. Cats Redux

今回はPractical Deep Learning for CodersのLesson1の結果をまとめてみた。題材はKaggleの犬・猫分類。

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の学習結果(重み)はブラックボックスで、隠れ層のユニット(特に深い層の!)が一体何を学習したのかがよくわからないと長年言われてきた。しかし、今回紹介する方法を使うとニューラルネットが何を学習したのか目で見える形で表現できる。 …

VGG16のFine-tuningによる17種類の花の分類

前回(2017/1/10)は、VGG16をFine-tuningして犬か猫を分類できる2クラス分類のニューラルネットワークを学習した。今回は、同様のアプローチで17種類の花を分類するニューラルネットワークを学習してみたい。前回の応用編みたいな感じ。この実験はオリジナ…

VGG16のFine-tuningによる犬猫認識 (2)

VGG16のFine-tuningによる犬猫認識 (1) (2017/1/8)のつづき。 前回、予告したように下の3つのニューラルネットワークを動かして犬・猫の2クラス分類の精度を比較したい。 小さな畳み込みニューラルネットをスクラッチから学習する VGG16が抽出した特徴を使…

VGG16のFine-tuningによる犬猫認識 (1)

VGG16はILSVRCのコンペ用に学習されたニューラルネットなのでImageNetの1000クラスを認識できる。しかし、前の記事(2017/1/4)で実験したように「ひまわり」のようなImageNetに存在しないクラスはそのままでは認識できない。 この問題を解決するためVGG16の…