タグ

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

  • VGG16のFine-tuningによる17種類の花の分類 - 人工知能に関する断創録

    前回(2017/1/10)は、VGG16をFine-tuningして犬かを分類できる2クラス分類のニューラルネットワークを学習した。今回は、同様のアプローチで17種類の花を分類するニューラルネットワークを学習してみたい。前回の応用編みたいな感じ。この実験はオリジナルなので結果がどう出るかわからなかったけどうまくいったのでまとめてみた。 リポジトリ:17flowers 使用したデータは、VGG16を提案したOxford大学のグループが公開している 17 Category Flower Dataset である。下のような17種類の花の画像データ。とっても美しい。 前に実験した(2017/1/4)ようにデフォルトのVGG16ではひまわりさえ分類できなかったが、VGG16をFine-tuningすることで果たしてこれら17種類の花(ひまわりもある)を分類できるようになるのだろうか?さっそく試して

    VGG16のFine-tuningによる17種類の花の分類 - 人工知能に関する断創録
  • 深層学習ライブラリ Keras - 人工知能に関する断創録

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

    深層学習ライブラリ Keras - 人工知能に関する断創録
  • 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 - 人工知能に関する断創録
  • ナイーブベイズを用いたテキスト分類 - 人工知能に関する断想録

    今までPRMLを読んで実装を続けてきましたが、10章からは難しくて歯が立たなくなってきたのでここらで少し具体的な応用に目を向けてみようと思います。機械学習の応用先としては画像の方が結果を見ていて面白いんですが、当面は自然言語処理を取り上げます。そんなわけで一番始めの応用は機械学習と自然言語処理の接点として非常に重要なテキスト分類(Text Classification, Text Categorization)の技法たちを試していきたいと思います。テキスト分類は文書分類(Document Classification)という呼び方もあります。テキストと文書は同じ意味です。最初なので自分の知識の整理と入門者への紹介のためにちょっと丁寧にまとめてみました。 テキスト分類とは テキスト分類とは、与えられた文書(Webページとか)をあらかじめ与えられたいくつかのカテゴリ(クラス)に自動分類するタス

    ナイーブベイズを用いたテキスト分類 - 人工知能に関する断想録
    syou6162
    syou6162 2010/06/13
  • ソフトマージンSVM - 人工知能に関する断創録

    前回(2010/5/2)のハードマージンSVMでは、データに重なりがある場合、下のようにちゃんと分類境界を求められませんでした。今回は、重なりのあるクラス分布に対応できるように拡張してみます。このようなSVMはハードマージンSVMに対してソフトマージンSVMと呼ばれます。別名としてC-SVMとも呼ばれるようです。 PRMLの7.1.1にあるように、データの誤分類を許すようにSVMを修正します。ハードマージンSVMでは、データ点がマージン内(-1 < y < 1)に絶対に入らないことを前提にしていましたが、ソフトマージンSVMでは「入ってしまったものは仕方ない、だがペナルティを与える!」と少し条件を緩めます。 まず、スラック変数ζ(ゼータ)をデータごとに導入します。スラック変数は、データが正しく分類されかつマージン境界上または外側にある場合は0、正しく分類されているがマージン内に侵入してしま

    ソフトマージンSVM - 人工知能に関する断創録
    syou6162
    syou6162 2010/05/04
  • ビショップ本購入 - 人工知能に関する断創録

    パターン認識と機械学習 上 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松裕治,村田昇出版社/メーカー: 丸善出版発売日: 2012/04/05メディア: 単行(ソフトカバー)購入: 6人 クリック: 33回この商品を含むブログ (13件) を見るパターン認識と機械学習 下 (ベイズ理論による統計的予測) 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松裕治,村田昇出版社/メーカー: 丸善出版発売日: 2012/02/29メディア: 単行購入: 6人 クリック: 14回この商品を含むブログを見る 有名な機械学習の教科書の日語版。ビショップって言う人多いかな?Amazonでずっと売り切れで待ってたけどなかなか入荷されないので他のオンライン書店で購入した。ぱらぱら眺めてみたけど難しそうだなー。一年くらい時間をかけてじっくり読む予定。集合知プログラミングみた

    ビショップ本購入 - 人工知能に関する断創録
    syou6162
    syou6162 2009/08/08
  • PythonからYahoo!形態素解析APIを使う - 人工知能に関する断創録

    集合知プログラミングのp.349を参考にYahoo!が提供する形態素解析WebサービスPythonから使ってみた。形態素解析Webサービスでやるなんて遅くて使い物にならなくね?ChaSenかMeCab使うよ!って使う前は思ってたのだがやってみたら驚くほど快適。かなり高速に結果を返してくれる。しかも、Yahoo!が作った特別な辞書を使っているらしく、IPAの辞書に比べて固有名詞の抽出精度がかなり高い印象を受けた。使う上での壁は、 Yahoo!デベロッパーネットワークに登録してアプリケーションIDを登録しなくちゃいけない 1日で1つのIPアドレスにつき50000万リクエストまで 1回のリクエストは100KBまで くらいか?Yahoo!のIDを持っていれば、アプリケーションIDの登録はWeb上で簡単にでき、審査もない。 Pythonで使う場合は、HTMLを解析するBeautifulSoup

    PythonからYahoo!形態素解析APIを使う - 人工知能に関する断創録
  • 探索による問題解決 - 人工知能に関する断創録

    今日は、エージェントアプローチ人工知能第2版の3章「探索による問題解決」を読んでた。 そういえば大学の人工知能の講義では一番はじめに探索やったなぁ。このにも載ってるけど8クイーンとか15パズルが例に出て探索アルゴリズムの説明とか受けた覚えがある。人工知能ワクワクってときにいきなり探索なんか出てきて、人間の知能と何の関係があるんだろう?全然関係ないじゃんとか思った覚えがある。 このを読み直してみると知的エージェントの構築という目的には探索は非常に重要な技術だと思い返した。探索はパズルとかチェスとか巡回セールスマン問題とかに使うというイメージが強いけど実はそれだけじゃないってことに気づかされたなぁ。抽象的に考えるとエージェントが目的を達するためにどのような行動の系列を取ればよいかを計算するのが探索技術だ。パズルやゲームはその一部の応用にすぎない。 3章では、幅優先探索、深さ優先探索、反復深

    探索による問題解決 - 人工知能に関する断創録
    syou6162
    syou6162 2008/11/01
    Rでやってみるか
  • ベイズネットワークのゲームへの応用 - 人工知能に関する断創録

    ゲーム開発者のためのAI入門」ってにベイズ推定とベイズネットワーク(ベイジアンネットワークとか信念ネットワークとも呼ばれますね)をゲームに応用する方法が書いてあった。ゲーム領域が不確定な状況下にあるときにプレーヤー以外のキャラクター(NPC)を操作するためにはどうしたらいいかって話。一般的にNPCの動作はプロダクションルール(if-thenルール)だと思うけどそれだと行動が固定的になってしまうので確率論を取り入れましょうってこと。プレイヤーの動きに適応して予想外の行動取ったらおもしろそうですよね。 ベイジアンネットワークをスクラッチから実装するのも何なので既存のライブラリがないか調べてみた。日だと産総研の村さんの作ったBayonetっていうツールがけっこう有名だけど、ソースが公開されていないし、自作プログラムへの組み込みは無理そう。 そこで海外に目を向けてみると Bayesian

    ベイズネットワークのゲームへの応用 - 人工知能に関する断創録
  • 1