This domain may be for sale!
ディープラーニングは特定分野で非常に高い精度が出せることもあり、その応用範囲はどんどん広がっています。 しかし、そんなディープラーニングにも弱点はあります。その中でも大きい問題点が、「何を根拠に判断しているかよくわからない」ということです。 ディープラーニングは、学習の過程でデータ内の特徴それ自体を学習するのが得意という特性があります。これにより「人が特徴を抽出する必要がない」と言われたりもしますが、逆に言えばどんな特徴を抽出するかはネットワーク任せということです。抽出された特徴はその名の通りディープなネットワークの中の重みに潜在しており、そこから学習された「何か」を人間が理解可能な形で取り出すというのは至難の業です。 例題:このネットワークが何を根拠に猫を猫として判断しているか、ネットワークの重みを可視化した上図から答えよ(制限時間:3分) image from CS231n Visua
ランニングできず 英語できず 深層強化学習のサーベイ論文を読む 「DeepLearning for Video Game Playing」https://arxiv.org/abs/1708.07902 最近までのPCゲームやテレビゲームを深層学習で解くAI技術について網羅的に解説した論文である。従って深層学習を使っても碁や将棋の様なボードゲームは対象外となっている。 下図の様な殆ど全ての深層強化学習を系統別かつ目的別に解説してあり大変な労作である。もし注目するモデルがあれば、この論文で検索すると以下のことが分る様になっている。 ・モデルの概要 ・モデルを発表した論文 ・考案した動機や対象としたゲーム ・モデル開発が可能なプラットホーム ・継承したモデルと発展先のモデル 下図の様に深層学習としては2013年の偉大なDQNから全てが始まっている。しかしこのDQN前にはSuttonのSarsa
今日参加してきた Deep Learning Acceleration勉強会 - connpass が非常に面白かった. 一度聞いただけでは全然理解できなかったので、後から読み返すように公開された資料や論文などをメモをまとめた。 私自身は仕事で一度tensorflowでCNN触ってみたくらいで、超初心者なので、 おかしな書き方をしているところがあるかもしれませんヾ(´゚Д゚;) [2017/09/04 11:00 追記] 間違いの修正/情報追記 目次 モデルアーキテクチャ観点からのDeep Neural Network高速化 by Yusuke Uchida(@yu4u)さん 資料 よくある高速化の方法 Factorization conv(5 x 5) => conv(3 x 3) - conv(3 x 3) conv(3 x 3) -> conv(1 x 3) - conv (3 x
いまお仕事の関係で、機械学習の教科書的な書籍を読んだりオンライン講座を受講したりしながらサンプルやチュートリアルを動かして勉強しています。 機械学習を勉強するときは、Pythonの環境を構築し、JupyterNotebookを使って、実際に手と頭を動かしながら行うのが効率的です。が、アルゴリズムの理論そのものの理解がすでにしんどい上、過学習対策のための正則化、汎化性能の評価、クロスバリデーション、不均衡データや少ないデータはどうすればいいか、などなどいちいち難しいことを数多く勉強しなければなりません。 その上、、、、機械学習での学習は、1度やれば終わり!ではなく、パラメータチューニングしたり、データを増やしたり加工したりしながら、繰り返しなんども行う必要があります。一見ビジネス寄り&アカデミックな雰囲気を醸し出していますが、実際のところは、非常に泥臭い作業のオンパレードです。 が、、、、、
Raspberry PiとTensorFlowを使ったディープラーニング開発環境 以下の記事でRaspberry PiとTensorFlowを使ったディープラーニングの開発環境の構築方法を紹介しました。 記事の最後の方に、自前データの学習から、学習したニューラルネットワークで判別まで実施できる自前のパッケージ「tensorflow-pi」を紹介させていただきました。 ただ、READMEだけ見ても、意味不明な英語で良くわからないと思いますので、今回は実例を交えながらこのソフトの使い方を紹介しようと思います。 例題ですが、以前ネットで話題になった「ロボホン」の幻の顔認識機能があります。詳しくは以下参照下さい。 開発決定!というニュースは話題になったものの、その後続報がとんと聞かれません。そもそも技術的に不可能なんじゃという噂も聞こえてきたりしました。 奇しくもロボホンとRaspberry Pi
コンパイルエラーの問題点 DeepFix Iterative Repair まとめ 参考文献 プログラミング言語のコンパイルエラーを自動で検知して修復することができたら、プログラマの作業時間を減らせる可能性があります。もしくは、テキストエディタがプログラムを書いている最中に、エラーだろうと思われる構文を見つけたときにさり気なく教えてくれたら生産性が著しく向上することも考えられます。 “Software is eating the world.“という言葉は、マーク・アンドリーセンの提唱した言葉です。まだまだ「食い尽くす」ほどではないものの、徐々にその影響力は高まっていると感じます。ソフトウェアを開発する必要性が増すにつれて、ソフトウェアエンジニアも次第に求められていくことでしょう。そして、そのプログラマの仕事の大部分はデバッグに費やされます。 バグや構文エラーを自動検知するシステムがテキス
動機 いわずもがなですが、機械学習の勉強にはとても時間が掛かります。 でも、同じ勉強時間を費やしたとしても、教材の良し悪しで捗り方が大きく変わってくることは、誰もが実感していることだと思います。 そこで、本記事ではテーマごとに私が考える最強の教科書をリストしていこうと思います。 ディープラーニング(アルゴリズムの理解) 「Deep Learning」An MIT Press book, 2016/12 発行 http://www.deeplearningbook.org/ 印刷本も売られてますが、上のWebページでいつでもタダで読めます。(版権上の問題でPDFの形では配布できない&してないそうです) この本は、ここ数年のディープラーニングの進歩のうち研究者の間ではメジャーとなっているであろうテーマはすべて書いてある、ともいえる内容の広さがありつつ、それぞれのテーマについて理論的背景と具体的
Pythonの機械学習用ライブラリの定番、scikit-learnのリリースマネージャを務めるなど開発に深く関わる著者が、scikit-learnを使った機械学習の方法を、ステップバイステップで解説します。ニューラルネットを学ぶ前に習得しておきたい機械学習の基礎をおさえるとともに、優れた機械学習システムを実装し精度の高い予測モデルを構築する上で重要となる「特徴量エンジニアリング」と「モデルの評価と改善」について多くのページを割くなど、従来の機械学習の解説書にはない特長を備えています。 関連ファイル サポートページ 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日
概要 自分用のメモとして、機械学習に関する情報を浅く ( それなりに ) 広くをモットーに、ざっくり整理してみました。 少しでも、他の方の理解に役立ったら嬉しいです。 機械学習とは コンピュータプログラムが経験によって自動的に出力結果を改善していく仕組み。 機械学習の代表的な手法について記載します。 1.教師あり学習 2.教師なし学習 3.強化学習 に分けて記載しました。 ※概要説明は一例です。 1.教師あり学習 1-1.線形回帰 予測したい値を算出する式を連続する多項式として表し、各係数を最小二乗法や最尤推定法で求めることでモデルとなる式を決定する Pythonライブラリ:scikit-learn(sklearn.linear_model.LinearRegression) 参考:最小二乗法による線形回帰のアルゴリズム (自身のQiitaの過去記事です) 1-2.ロジスティック回帰 2択
DeepMindのSonnetを触ったので、TensorFlowやKerasと比較しながら解説してみた機械学習DeepLearningKerasTensorFlowSonnet はじめに GoogleのDeepMindが社内的に使っている深層学習ライブラリSonnetを公開したので、試しに触ってみました。TensorFlowやKerasと比較をしながら解説していきたいと思います。まだ触ってみたばかりで細かい内容をお話することは出来ませんが、少しでもSonnetが気になっている方の力になれれば嬉しいです。 間違ってる部分や質問などありましたらコメントして頂けると幸いです。 Excited to release #Sonnet - a library for constructing complex Neural Network models in TensorFlow. Get starte
秋山です。 機械学習が人気ですが、「Word2Vec」「Doc2Vec」という、文章などを分析するニューラルネットワークモデルを知っていますか? すごーく簡単に言うと、「Word2Vec」は単語の類似度のベクトル、「Doc2Vec」は文章の類似度のベクトルを表現します。 結構前に話題になったので既に知っている人も多いかもしれませんが、今回はpaizaのスキルチェック問題に提出された一部のコードを対象に、「Word2Vec」と「Doc2Vec」でどんなことができるかやってみたいと思います。(※スキルチェック問題や回答の内容は判別できないように処理しています) ■Word2Vecについて ざっくり言うと、ある単語の周辺に別の単語が出現する確率……みたいなものを見てくれます。ニューラルネットワークを使って、類似度を求めています。Word2Vecは隠れ層1、出力層1の、2層のニューラルネットワーク
前編はこちら: ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(前編) 逆畳み込みネットワーク(DN) は、インバース・グラフィックス・ネットワーク(IGN)とも呼ばれていますが、畳み込みネットワークを逆転させたものになります。例えばネットワークに”猫”という言葉を入力すれば、生成した猫らしき画像と本物の猫の写真を比較しながら猫の画像を作成するよう訓練するようなイメージです。普通のCNNと同様にDNNをFFNNに組み合わせることができますが、新しい略語が見つかる時に線が描かれるところが特色です。深層逆畳み込みニューラルネットワークとでも呼べそうですが、FFNNの前後にDNNをつなげると、新しい名前をつけるにふさわしい別のアーキテクチャのネットワークができると主張できます。実際にはほとんどのアプリケーションにおいて、ネットワークにテキストに似たものが
Keras というのは Python を使ってニューラルネットワークを組むためのフレームワーク。 Python でニューラルネットワークのフレームワークというと、他にも TensorFlow とか Chainer なんかが有名どころ。 Keras はそれらに比べると、より高い抽象度の API を提供しているところが特徴みたい。 実のところ Keras はデフォルトで TensorFlow をバックエンドとして動作する。 バックエンドとしては、他にも Theano が選べるらしい。 今回は Keras で組んだニューラルネットワークを GPU で学習させてみることにした。 そのとき CPU と比べて、どれくらい速くなるかを試してみたい。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.3 BuildVersi
リアルタイムに物体検出するのってどうやるんだろう?と思い調べてみたら、想像以上に高機能なモデルが公開されていたので試してみました。こんな感じです。 自動運転で良く見るようなリアルタイムの物体認識をしています。このモデルは「Single Shot MultiBox Detector(SSD)」という深層学習モデルで、Kerasで動いています。 環境さえ整えればレポジトリをクローンして簡単に実行できます。今回はデモの実行方法をまとめてみます。 環境 ちょっと古いiMacにUbuntu16.04を入れたものを使いました。詳しくはこのへんとかこのへんをご参照ください。 深層学習を利用したリアルタイムの物体検出は次々と新しい技術が公開されているようです。ざっと調べたところ、R-CNN、Fast R-CNN、Faster R-CNN…。どれだけ早くなるねん。って感じですが、とにかくどんどん早くなってい
ソフトウェアエンジニアがFPGA(field-programmable gate array)を使うハードルがさらに下がってきている。クラウドサービスでFPGAを活用できたり、Pythonで記述したニューラルネットワークをFPGAに高位合成できる研究成果が出てきたりしているのだ。 ソフトウェア開発者の立場でFPGAに取り組むイベント「FPGAエクストリーム・コンピューティング」を主宰する佐藤一憲氏、FPGAの高位合成によるディープラーニングについて研究している東京工業大学の中原啓貴氏(中原研究室)、そしてFPGAベンダーであるザイリンクスの神保直弘氏が、急激に常識が変わりつつあるFPGAの動向を語り合った。 本稿では座談会の中から、ソフトウェアエンジニアにFPGAや高位合成が求められる現状、そして、今後どのようなツールを使うべきか、ソフトウェアエンジニアがFPGAに取り組む際の課題などにつ
デープラーニングはコモディティ化していてハンダ付けの方が付加価値高いといわれるピ-FNで主に工作担当のtai2anです。 NHKで全国放送されたAmazon Picking Challengeでガムテべったべたのハンドやロボコン感満載の滑り台とかを工作してました。 とはいえ、やっぱりちょっとディープラーニングしてみたいので1,2か月前からchainerを勉強し始めました。 せっかくなので線画の着色をしたいなーと思って色々試してみました。 線画の着色は教師あり学習なので線画と着色済みの画像のデータセットが(できれば大量に)必要です。 今回はOpenCVでカラーの画像から線画を適当に抽出しています。 抽出例 → カラーの画像を集めて線画を作ればデータセットの完成です。(今回は60万枚くらい使っています) ネットワークの形ですが、U-netという最初の方でコンボリューションする時の層の出
はじめに ポチポチKeras動かすのにどのような環境がいいのか考えてみました Keras + Docker + Jupyter Notebook + GPUの環境構築作業ログを紹介します Keras GitHub - fchollet/keras: Deep Learning library for Python. Convnets, recurrent neural networks, and more. Runs on Theano or TensorFlow. わかりやすいインターフェースがかなり好き Docker TensorFlowで学ぶディープラーニング入門~畳み込みニューラルネットワーク徹底解説 を参考にしました この本ではDockerを使用してます 当初はvirtualenv使用して環境作る予定だったので、勉強になりました 環境の移植性いいね GPU使用できるのいいね Ju
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く