タグ

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

  • Freesound General-Purpose Audio Tagging Challenge - 人工知能に関する断創録

    最近、Kaggle始めました。登録自体は2年前にしてたのですが、興味起きなくてタイタニックやった後にずっと放置してました (^^; 今回、取り組んだのはFreesound General-Purpose Audio Tagging Challengeという効果音に対して3つのタグをつけるコンペです。2秒ほどの音に対してギター、犬の鳴き声、チャイム、シンバルなどの41個のタグから3つを付与します。1つの音声に対する正解のタグは1つなのですが、3つのうち正解のタグが上位にあるほどスコアが高くなります。 Deep Learningで音を分類したり、生成したりする技術に興味があったので取り組んでみました。Private Leader Board上では比較的上位にいこめたので参考までにアプローチをまとめておこうと思います! Kaggleにはカーネルという実験をまとめたJupyter Noteboo

    Freesound General-Purpose Audio Tagging Challenge - 人工知能に関する断創録
  • PyTorch (1) リンク集 - 人工知能に関する断創録

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

    PyTorch (1) リンク集 - 人工知能に関する断創録
  • KerasでVGG16を使う - 人工知能に関する断創録

    今回は、Deep Learningの画像応用において代表的なモデルであるVGG16をKerasから使ってみた。この学習済みのVGG16モデルは画像に関するいろいろな面白い実験をする際の基礎になるためKerasで取り扱う方法をちゃんと理解しておきたい。 ソースコード: test_vgg16 VGG16の概要 VGG16*1は2014年のILSVRC(ImageNet Large Scale Visual Recognition Challenge)で提案された畳み込み13層とフル結合3層の計16層から成る畳み込みニューラルネットワーク。層の数が多いだけで一般的な畳み込みニューラルネットと大きな違いはなく、同時期に提案されたGoogLeNetに比べるとシンプルでわかりやすい。ImageNetと呼ばれる大規模な画像データセットを使って訓練したモデルが公開されている。 VGG16の出力層は1000

    KerasでVGG16を使う - 人工知能に関する断創録
  • 深層学習ライブラリ Keras - 人工知能に関する断創録

    ここ1年くらいDeep Learning Tutorialを読みながらTheanoというライブラリで深層学習のアルゴリズムを実装してきた。 深層学習の基的なアルゴリズムならTheanoでガリガリ書くこともできたがより高度なアルゴリズムをTheanoでスクラッチから書くのはとてもきつい*1。 そんなわけでPylearn2、Lasagne、nolearnなどのTheanoベースのラッパーライブラリをいろいろ調べていたのだが、結局のところKerasというライブラリが一番よさげだと思った。KerasはバックエンドとしてTheanoとTensorflowの両方が使え、より高レイヤな表現(たぶんChainerと同レベル)で深層学習のさまざまなアルゴリズムが記述できる。TheanoやTensorflowは完全に隠蔽されており、Kerasで書かれたプログラムはまったく修正せずにTheanoとTensor

    深層学習ライブラリ Keras - 人工知能に関する断創録
  • 人工知能によるコンテンツ生成と著作権 - 人工知能に関する断創録

    今朝の読売新聞に面白い記事があったのでご紹介。 AI芸術著作権は? 人工知能AI)が自動的に作った楽曲や小説は「誰の作品」になるのか。政府は「AIアート」が将来、格的に普及するとみて、 年明けから著作権のあり方について議論を始める。 そもそも著作権を認めるべきなのか、「これはこのAIの作品だ」ということをどう証明するのかなど、 整備すべきルールは多岐にわたる。 読売新聞 2015年12月30日 この記事では人工知能芸術の事例として 短編小説生成システム「きまぐれ人工知能プロジェクト 作家ですのよ」 自動作曲システム「Orpheus」 の2つが取り上げられている。このような人工知能システムで作ったコンテンツの著作権はどうなるのか?というお話だった。著作権は作者の死後50年間とされているが、人工知能は死なないので保護期間が問題になるそうだ。システム(サービス)停止から50年でいいのでは?と

    人工知能によるコンテンツ生成と著作権 - 人工知能に関する断創録
    Nyoho
    Nyoho 2015/12/30
  • Theanoによる雑音除去自己符号化器の実装 - 人工知能に関する断創録

    この記事はDeep Learning Advent Calendar 2015の9日目です。 Theanoによる自己符号化器の実装(2015/12/3)の続き。 今回は自己符号化器を継承して雑音除去自己符号化器(Denoising autoencoder)を実装した。 ソースコード全体はここ。 自己符号化器は入力をもとの入力に戻すような写像を学習する手法だったが、雑音除去自己符号化器はもっと過酷で雑音(ノイズ)を付与した入力を雑音のない状態に戻せという一見すると無茶な要求を最適化アルゴリズムにつきつける。MNISTの例だと左のようなノイズが入った画像(画像クリックで拡大)を右のようなノイズがない画像に戻す写像を学習させる。最適化アルゴリズムにこういう制約を課すだけでよりロバスト性の高い特徴が自動的に学習できるという。 ノイズ付与 ノイズ付与の方法はいろいろあるらしいがランダムにマスキングす

    Theanoによる雑音除去自己符号化器の実装 - 人工知能に関する断創録
  • Deep Learning リンク集 - 人工知能に関する断創録

    乗るしかないこのビッグウェーブに Deep Learning(深層学習)に関連するまとめページとして使用する予定です。Deep Learningに関する記事・スライド・論文・動画・書籍へのリンクをまとめています。最新の研究動向は全然把握できていないので今後研究を進めるなかで記録していきたいと思います。読んだ論文の概要も簡単にまとめていく予定です。ブログでは、当面の間、Theanoを使って各種Deep Learningアルゴリズムを実装していきたいと思います。 関連ニュースなどはTwitterでも流しているので興味があったらフォローしてください。 すべてに目が通せず更新が追いついていません。私のはてなブックマークで[Deep Learning]というタグを付けて登録しています。まったく整理できていませんがご参考まで。 Theano編 TheanoをWindowsにインストール(2015/1

    Deep Learning リンク集 - 人工知能に関する断創録
  • 統計的声質変換 (7) GMMによる声質変換 - 人工知能に関する断創録

    統計的声質変換 (6) 声質変換モデルの学習の続き。今回が統計的声質変換シリーズの最終回です。 今回は、前回学習した声質変換モデルを使って当に声が変換できるか試してみたい。前回やったGMMの学習で における各コンポーネント の と と が学習データから推定された状態である。 と は、 のように分割できる。この学習結果は、 clb_slt.gmm clb_slt.gmm_01.npy clb_slt.gmm_02.npy clb_slt.gmm_03.npyの4つのファイルにダンプされている。 GMMによる声質変換 GMMによる声質変換は、が与えられたときのの期待値を求めることで行う。 ここで、 である。今回は導出は省いて、論文(PDF)の結果をそのまま借用しよう。 たとえば、Aさんの声をBさんの声に変換することを考える。Aさんの声から抽出したメルケプストラムパラメータ を使って上の式で変

    統計的声質変換 (7) GMMによる声質変換 - 人工知能に関する断創録
  • 統計的声質変換 (6) 声質変換モデルの学習 - 人工知能に関する断創録

    統計的声質変換 (5) scikit-learnのGMMの使い方(2015/3/22)の続き。 今回は、いよいよ声質変換モデルを混合ガウスモデル(GMM)で学習しよう!第3回目(2015/3/4)で述べたようにclbさんの声をsltさんの声に変換することを前提に進める。 今まで「声質変換モデルをGMMで学習する」と書いてきたが、参考にしていたチュートリアルを読んでも何をGMMで表すのかがいまいちピンとこなかった。そこで、元論文(PDF)を当たったところ式 (6) を見てようやく理解できた。 この式から がGMMでモデル化されていることがわかる。そして、この は、変換元話者の t フレーム目の特徴量 と変換先話者の t フレーム目の特徴量 の結合ベクトル である。今回は26次元のメルケプストラム特徴量を使うため は2人のメルケプストラム特徴量を結合した52次元ベクトルになる。つまり、学習する

    統計的声質変換 (6) 声質変換モデルの学習 - 人工知能に関する断創録
  • 統計的声質変換 (5) scikit-learnのGMMの使い方 - 人工知能に関する断創録

    統計的声質変換 (4) パラレルデータの作成(2015/3/10)の続き。 今回は、いよいよ声質変換モデルを混合ガウスモデルで学習しよう!と思ったのだけれど、その前にscikit-learnのGMMライブラリの使い方を簡単にまとめることにした。格的に使う前に簡単なデータで使い方を確認しておこうというのが趣旨。scikit-learnは最近使い始めたので使ったことがない機能がまだたくさんある。 混合ガウスモデル(GMM) GMMは、データxの生成される確率を複数のガウス分布の重み付き和で表すモデルである。 ここで、Kは使用するガウス分布の個数、はk番目のガウス分布の重み(混合係数)、は、k番目のガウス分布の平均ベクトル、は、k番目のガウス分布の共分散行列。混合係数はすべてのkについて足し合わせると1になる。 GMMの学習は、データセットXを用いて、尤度がもっとも高くなる混合係数と平均ベクト

    統計的声質変換 (5) scikit-learnのGMMの使い方 - 人工知能に関する断創録
  • 統計的声質変換 (4) パラレルデータの作成 - 人工知能に関する断創録

    統計的声質変換 (3) メルケプストラムの抽出(2015/3/4)の続き。 前回は変換元のclbさんと変換先のsltさんのメルケプストラムを一括抽出した。前回の最後の結果を見ると、二人のしゃべる速さが違うためメルケプストラムが時間方向にずれていることがわかった。たとえば、下の図は青色がclbさんのメルケプストラム系列、緑色がsltさんのメルケプストラム系列を表している。赤の矢印の場所で形状が似ているが位置がずれていることがわかる。 このずれはメルケプストラム間の変換モデルを学習するときに問題になるため時間同期を取る。この時間同期を取ったデータをパラレルデータと呼ぶ。 DTW (Dynamic Time Warping: 動的時間伸縮法) この二つの時系列データの時間同期を取るアルゴリズムにDTWというのがあるので使ってみる。DTWは、二つの時系列データがなるべく重なりあうように伸ばしたり、

    統計的声質変換 (4) パラレルデータの作成 - 人工知能に関する断創録
  • 統計的声質変換 (3) メルケプストラムの抽出 - 人工知能に関する断創録

    統計的声質変換 (2) ボイスチェンジャーを作ろう(2015/2/25)の続き。 前回は音声から抽出したメルケプストラムやピッチのパラメータを直接いじることで簡単なボイスチェンジャーを作った。今回からAさんの音声をBさんの音声に変換する規則を機械学習の手法で学習する声質変換の実験をしていきたい。今回は学習データとなる音声データをダウンロードするところとメルケプストラムを抽出するところまで。 音声データのダウンロード チュートリアルと同じようにCMU ARCTIC Databasesという公開データを使う。このデータは7名の英語話者が同じ文章を朗読した音声がついている。今回作る統計的声質変換の手法は、変換元のAさんと変換先のBさんが同じ文章を読んだ音声が必要になるのでちょうどよいデータ。英語なのが残念。日語の音声は探したけどなかった。あとで自分の声でやってみたい。 一括ダウンロードするスク

    統計的声質変換 (3) メルケプストラムの抽出 - 人工知能に関する断創録
  • 統計的声質変換 (2) ボイスチェンジャーを作ろう - 人工知能に関する断創録

    統計的声質変換 (1) ロードマップ(2015/2/11)の続き。 統計的声質変換の第二回ということでまずは統計的じゃない声質変換の枠組みで簡単なボイスチェンジャーを作ってみたい。いきなり題とずれているけれどここをしっかり理解できていないと統計的な方はまったく歯が立たないため整理しておきたい。 ソース・フィルタモデル 人間の音声は、ノドの声帯を振動させたブザー音が声道、口、唇を通過することで出てくる仕組みになっている。これを数学的にモデル化したのがソース・フィルタモデル。 http://www.kumikomi.net/archives/2010/08/ep30gose.php から引用 このモデルでは、音源にあたるブザー音を作り出し、ブザー音をディジタルフィルタに通すことで音声を作る。音源のパラメータとして声の高さを表すピッチ、声道のパラメータとしてメルケプストラムというのがよく使われ

    統計的声質変換 (2) ボイスチェンジャーを作ろう - 人工知能に関する断創録
  • 共役勾配法によるロジスティック回帰のパラメータ推定 - 人工知能に関する断創録

    Courseraの機械学習ネタの続き。今回はロジスティック回帰をやってみます。回帰と付くのになぜか分類のアルゴリズム。以前、PRMLの数式をベースにロジスティック回帰(2010/4/30)を書いたけど今回はもっとシンプル。以下の3つの順にやってみたいと思います。 勾配降下法によるパラメータ最適化 共役勾配法(2014/4/14)によるパラメータ最適化(学習率いらない!速い!) 正則化項の導入と非線形分離 ロジスティック回帰は線形分離だけだと思ってたのだけど、データの高次の項を追加することで非線形分離もできるのか・・・ 使用したデータファイルなどはGithubにあります。 https://github.com/sylvan5/PRML/tree/master/ch4 勾配降下法によるパラメータ最適化 2クラスのロジスティック回帰は、y=0(負例)またはy=1(正例)を分類するタスク。ロジステ

    共役勾配法によるロジスティック回帰のパラメータ推定 - 人工知能に関する断創録
  • 多層パーセプトロンが収束する様子 - 人工知能に関する断創録

    多層パーセプトロンによる関数近似(2014/1/22)の続きです。 もう少しスクリプトを改造し、実際に各重みと出力がどのように収束するかアニメーションにしてみました。ほとんどの関数は最初に急激に変化したあとだんだん収束していく様子が見てとれます。|x|は最初は誤差が減らずローカルミニマムにはまったかな?と思ったのですが、しばらく待っていたら急激に誤差が減りました。よかった、よかった。 残りは http://www.youtube.com/channel/UC4DmXhmsKZT48cRD6znEXaw このアニメーションを実行するスクリプトです。matplotlibにwxPythonを組み合わせることでアニメーションを実現しています。このアニメーションの書き方は、短時間フーリエ変換(2011/7/16)でも使いました。 次回は、数字の手書きデータを認識するニューラルネットを作りたいと思いま

    多層パーセプトロンが収束する様子 - 人工知能に関する断創録
    Nyoho
    Nyoho 2014/01/23
  • Open JTalkで音声合成 - 人工知能に関する断創録

    前回は、音声認識エンジンJulius(2013/7/6)を試してみましたが、今回は、オープンソースで開発されている音声合成エンジンのOpen JTalkで遊んでみました。こちらも日の大学が中心になって開発しているようです。そのわりにページが全部英語で敷居の高さを感じるんだけど(笑) 動作環境は、Mac OS X Mountain Lionです。64bit環境なのでインストールにいろいろ苦労しました・・・ 今回は、とりあえず音声を出すことを目的とし、hts_engine_APIとOpen JTalkの関連などはあとで実験しながら勉強していこうと思います。 hts_engine_APIのインストール hts_engine_APIはコンテキストラベル系列と音響モデルを入力として、スペクトル・基周波数・時間長などのパラメータ系列を生成するエンジンです。hts_engine_API単体では、任意

    Open JTalkで音声合成 - 人工知能に関する断創録
    Nyoho
    Nyoho 2013/09/21
  • Juliusで連続音声認識 - 人工知能に関する断創録

    大語彙連続音声認識エンジンJuliusで遊んでみました。動作環境はMac OS X Mountain Lionです。 準備 コンパイラはXcodeでインストールしたgcc(2013/1/13)を使用しました。 また、Macで動かす場合はPortAudioというライブラリも必要みたいなので、macportsであらかじめインストールしておきました(というか何か別のプロジェクトでインストール済みだった)。 % port installed portaudio The following ports are currently installed: portaudio @19.20111121_4 (active) julius体のインストール Juliusのプロジェクトページからjulius-4.2.3.tar.gzをダウンロードします。サイトの右の方のQUICK DOWNLOADからダウンロ

    Juliusで連続音声認識 - 人工知能に関する断創録
    Nyoho
    Nyoho 2013/07/06
  • メル周波数ケプストラム係数(MFCC) - 人工知能に関する断創録

    Pythonで音声信号処理(2011/05/14)の第19回目。 今回は、音声認識の特徴量としてよく見かけるメル周波数ケプストラム係数(Mel-Frequency Cepstrum Coefficients)を求めてみました。いわゆるMFCCです。 MFCCはケプストラム(2012/2/11)と同じく声道特性を表す特徴量です。ケプストラムとMFCCの違いはMFCCが人間の音声知覚の特徴を考慮していることです。メルという言葉がそれを表しています。 MFCCの抽出手順をまとめると プリエンファシスフィルタで波形の高域成分を強調する 窓関数をかけた後にFFTして振幅スペクトルを求める 振幅スペクトルにメルフィルタバンクをかけて圧縮する 上記の圧縮した数値列を信号とみなして離散コサイン変換する 得られたケプストラムの低次成分がMFCC となります。私が参考にしたコードは振幅スペクトルを使ってたけど

    メル周波数ケプストラム係数(MFCC) - 人工知能に関する断創録
  • 1