Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

これはなに? DevFest Tokyo 2016での 発表で出したサンプルコードの全体を見たいという要望を頂いたので晒しておきます。 やりたかったこと 生のTensorFlowとTensorFlowの高レベルAPI版tf.contrib.learnとTensorFlowをバックエンドにしてDSLっぽくネットワークを記述できるKerasで、同じデータ、同じ手法で揃えてどう違うか、と横串で見れるものがなかったので横並びで見えるようにしたかった。 と、いうのも、それぞれのチュートリアルを見ていくと、微妙にやっていることが違うため、混乱してしまう、というか私は混乱してしまいました。 自分が調べた範囲では同じような条件で比較しているものがなかったので、混乱する方が少しでも減るように記録を残しておこうかなと思った次第です。とりあえずtf.contrib.learnのチュートリアルのものを基準に他のも
はじめに 本記事ではKerasとScikit-learnの簡単な使い方を紹介します。 イントロ Scikit-learn・Keras ← 今ココ! モデルの性能指標・評価方法 データの前処理・データ拡張 早期終了(early stopping)・正則化 転移学習 ハイパーパラメータのチューニング モデル圧縮 応用 Scikit-learnはPythonによる機械学習ではよく使われるライブラリで、サポートベクターマシンや決定木、ランダムフォレストなど有名な機械学習アルゴリズムをサポートしています。他のライブラリもScikit-learnを似せてインタフェースを作っていることが多いので、覚えておくとあとでつぶしが効くと思います。 インストール 基本的な使い方 機械学習アルゴリズムのオブジェクト(例:model)を生成する この段階で各種アルゴリズムのハイパーパラメータを設定する model.f
SegNetは、ケンブリッジ大学が開発した画素単位でのラベリング機能を実現する、 A Deep Convolutional Encoder-Decoder Architectureのこと keras2系+tensorflowで実装してみた とりあえず動かしたソースコードを貼っていく 解説はいずれやりたい・・・ 環境 ubuntu 17.04 python 3.6 keras 2.0.8 tensorflow 1.3.0 データの読み込み 画像のセグメンテーション用に公開しているデータを使う https://github.com/alexgkendall/SegNet-Tutorial リポジトリの、./CamVid内のデータを使う クラスは12あり、順番に [Sky, Building, Pole, Road_marking, Road, Pavement, Tree, SignSymbo
#目標 教師なしデータを使い、word2vecを学習させ、それをEmbedding層としてテキスト分類問題に応用する。 #知識 word2vec 単語をベクトル化する。今回はpythonライブラリであるgensimを使用して、実装する。このライブラリは以下の論文を参考にしている。 ・Efficient Estimation of Word Representations in Vector Space ・Distributed Representations of Words and Phrases and their Compositionality ##転移学習 転移学習とは学習済みのモデルを利用して、新たなモデルを構築する手法である。 今回の場合でいうと、次のようである。 学習済みのモデル→gensimのword2vecモデル 新たなモデル→文書分類モデル 転移学習を利用した文書分類
>>> from keras.preprocessing import sequence >>> import numpy as np >>> data = [np.array([[1,2,3],[4,5,6]]), ... np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]])] >>> data [array([[1, 2, 3], [4, 5, 6]]), array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8, 9], [10, 11, 12], [13, 14, 15]])] >>> #長さを4に揃える。 >>> data = sequence.pad_sequences(data, maxlen=4,padding="post", truncating="post") >>> data array(
この記事は BrainPad AdventCalendar 2017 23日目の記事です。 今回は深層強化学習を取り上げてみようと思います。 ビジネス課題と強化学習 BrainPadでは、データ分析に基づいて様々なビジネス課題に取り組んでいますが、時間的な制約や網羅性の制約などから、機械学習に必要となる最終的に得たい結果(目的変数)と打ち手となる要因(説明変数)の組みを事前にすべて揃えることが出来ない課題において検討されるのが強化学習のアプローチです。そこでは、実際に打ち手を局所的に試行しデータを集めながら、得たい結果との関係性(予測モデル/判断モデル)を動的に学習していきます。そのような意味で、教師あり学習と教師なし学習の中間に位置する手続きと解釈される枠組みで、より現実世界の時間の流れに沿った動的な課題に適用が検討されます。 具体的には、立上げた新規Webページでの広告の出し分けロジッ
概要 Kerasで提供されているVGG16という大規模な画像で学習済みのモデルを活用して、ご注文はうさぎですか?(略称 ごちうさ)に登場する主要キャラクター5名の画像を分類するモデルを作成します。 この学習済みモデルを使用して少ないデータセットで、かつ比較的短時間で学習できる手法をFine-tuningといいます。 用語解説 Tensorflow ・・・ Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリ。 Keras ・・・ オープンソースのニューラルネットワークライブラリ。バックエンドでTensorflowも動かせる。 VGG16 ・・・ ImageNetと呼ばれる大規模な画像データセットを使って学習された16層からなるニューラルネットワークモデル。 ご注文はうさぎですか? ・・・ まんがタイムきららMAXで連載中の漫画。アニメ化もされた人気
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近機械学習はじめたので、内部向けに勉強会を開催しました。 その際の資料を共有します。(寄せ集めです(汗)) 目的 機械学習の敷居を下げ、機械学習をはじめてもらう! kerasのソースベースなので、とりあえず動かせる(はず) 進め方 keras説明(2分) kerasインストール(2分) 実装&理論(30分) 質問時間(10分) 参考資料の共有(6分) keras説明(2分) TensorFlowやTheanoのラッパー。超簡単に機械学習ができる! 参考 Python製深層学習ライブラリ「Keras」の紹介 (with TensorFl
概要 Keras(Tensorflowバックエンド)で、画像認識の分野で有名なモデルVGG16を用いた転移学習を行いました。 そもそもディープラーニングとは?Kerasって何?という方は、こちらの記事をご参照下さい。 転移学習とファインチューニングの違い 転移学習とファインチューニングは、どちらも既存のモデル(今回はVGG16)を応用したディープラーニングの学習方法です。その為この2つはよく混同されていますが、厳密には異なります。 参考:Quora: What is the difference between transfer learning and fine tuning? ざっくりと説明すると、違いは以下になります。 転移学習:既存の学習済モデル(出力層以外の部分)を、重みデータは変更せずに特徴量抽出機として利用する。 ファインチューニング:既存の学習済モデル(出力層以外の部分)を
Kerasのモデルは学習完了時のものが最良とは限らない ちょっとしたTipsです。 Kerasの限らず、ディープラーニングで作ったモデルは学習完了時のものが最良とは限りません。 学習を進めていって全エポックを終了したとしても(またはEarlyStoppingしても)、過学習であったり局所最適化されてしまったりということがありえます。 学習の途中に最良のモデルが存在するけど、学習完了時はそれより劣る、ということです。 そうした場合はCheckpointで保存された最良のモデルをロードし直すのが良いと思います。 import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers
from __future__ import print_function import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import RMSprop batch_size = 128 num_classes = 10 epochs = 1 # the data, shuffled and split between train and test sets (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train = x_train.reshape(60000, 784) x_te
無から始める Keras のもくじはこちら 前回のおさらい 前回は雑なデータセットを作って雑に学習させた。 入力は、要素がそれぞれ0以上1未満の5次元のベクトル。出力は、そのベクトルの要素の和が2.5以下だったら0、2.5より大きかったら1。いわゆる「2クラス分類」をする。 データセットは以下のように作った。出力はニューラルネットが扱いやすいように、ワンホットな2次元のベクトルにしてやる。 活性化関数(activation) ニューラルネットでは、前の層からやってきた値の重み付き和をとる。そこにバイアスの定数を加え、最後にある関数を適用する。この適用する関数が活性化関数である。 Activation というレイヤーを使って活性化関数をかけることもできる。これを使うとパラメータを指定できたりするのだが、まあ使わなくてもいいっちゃいい。 なおバイアスは、意味合い的には負のときに閾値となる(この
SegNetは、ケンブリッジ大学が開発した画素単位でのラベリング機能を実現する、 A Deep Convolutional Encoder-Decoder Architectureのこと keras2系+tensorflowで実装してみた とりあえず動かしたソースコードを貼っていく 解説はいずれやりたい・・・ 環境 ubuntu 17.04 python 3.6 keras 2.0.8 tensorflow 1.3.0 データの読み込み 画像のセグメンテーション用に公開しているデータを使う https://github.com/alexgkendall/SegNet-Tutorial リポジトリの、./CamVid内のデータを使う クラスは12あり、順番に [Sky, Building, Pole, Road_marking, Road, Pavement, Tree, SignSymbo
前回の続き ちょうど良かったのでKerasのアドベントカレンダーに参加しました。 前置き この話は2017年12月3日現在のお話です。各種オープンソースのバージョンアップによってどんどん解決されているかもしれません。 Lambdaの便利さに取り憑かれたが故の悲劇 前回はLambdaの便利さについて書きましたが、実はある特定の目的でモデルを設計していると(現時点では)悲しみを背負うことになります。そうです、私は背負いました。 機械学習が色んな所で気軽に使えるようになってきた昨今、浮足立っているエンジニアの中で私も例に漏れず 「iOSアプリで学習したモデルを気軽に使えたら楽しそうだなぁ」 って思ってた所に発表されたのが coreML です。しかもなんと、公式でkerasのモデルをcoreMLで利用できるようにするためのコンバーター(coremltools)がオープンソースで公開されていると。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く