サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
s0sem0y.hatenablog.com
はじめに これまで通りの使い方 Kerasと言えばコレ:Sequential 少し発展版:Modelによるfunctional API Eagerの登場によって…! Pythonのclassとしての作り方 Eagerモードとしての書き方 確率的なニューラルネットワーク はじめに 最近機械学習から離れ気味ですが、何やらTensorFlowのDocumentを覗いたらTensorFlow内部のKerasがすごくいろいろな使い方できることに気が付きました。 (ちなみに、TensorFlowとは別の(いろいろなフレームワークをバックエンドにできる)Kerasの方はどうなっているのか知らないので申し訳ありません。) ということでそれを簡単にまとめておきたいと思います。本当に簡単に。 これまで通りの使い方 Kerasと言えばコレ:Sequential 最もよく知られている使い方ですね。 model=t
機械学習に必要な知識 ネット上の様々な意見 機械学習への携わり方と必要な数学 具体的に勉強を進める 簡単な問題で動作を確認 プログラムを書く Kaggleはやるべき? 勉強を進める上で使えるツールたち Python Jupyter Notebook scikit-learn TensorFlow 機械学習に必要な知識 ネット上の様々な意見 機械学習の勉強をしていく上で大事なものは何でしょうか。 調べればプログラミングだとか統計だとか、解析学・線形代数学であるなど、いろいろな意見が見られます。 おそらくネット上で見つかるいろいろな意見、「機械学習では○○を勉強すべき」という話は、少なくともその話を言っている人の中では真であるのだろうと思われます。 要するに、その勉強をしたことによって(あるいはその知識を持っていたことによって)、その人は何らかの機械学習に対する知見が得られたと言っているのです
はじめに 初級編 ゼロから作るDeep Learning 中級編 scikit-learnとTensorFlowによる実践機械学習 PythonとKerasによるディープラーニング 上級編 Pro Deep Learning with TensorFlow Deep Learning はじめに ディープラーニングに関する書籍は山ほど出てきています。 その中でどれを読めば良いのか分からない、というのは初心者にとって最初の問題でもあるでしょう。まずはブログなどのネットの情報を参考に勉強をする人が多いかと思われますが、私のブログも含め、大抵は個人の興味に沿ってバラバラに話題が提供されるため、できれば1つ1つ順を追って解説してくれる物が欲しいと感じるのが本音と思われます。 今回は、数ある書籍の中でも私自身が所持していておすすめできるディープラーニングの書籍を載せたいと思います。 初級編 ゼロから作
はじめに フレームワークのこれまでと現状 ディープラーニングフレームワークの登場 Define by RunとDefine and Run Define and RunとDefine by Run戦争終結? ディープラーニングフレームワークのこれから ディープラーニング応用 はじめに 最近は自分自身が機械学習関連に触れる機会がめっきり減ってしまい、ブログの更新が全くできていない状態でした。久々にこの辺りの現状を調べてみたら、私がいろいろ機械学習を触っていた時と状況が大きく変化しているように見えました。 なので私が久々に調べてみて感じたところをまとめておきたいと思います。 実際に動かしてみた系の記事ではないですし、具体例がないのでもしかしたら私の頭の中で勘違いもあるかもしれませんが、そのときはご指摘いただけると幸いです。 フレームワークのこれまでと現状 ディープラーニングフレームワークの登場
はじめに 全結合層 全結合層の数式 非全結合層 畳み込み層 入力成分のindexに着目した非全結合層 非全結合・重み共有層 1D畳み込み層 2Dの畳み込み層 最後に はじめに 今回はニューラルネットワークの基本的な構成要素である線形(全結合)層と畳み込み層について簡単に説明します。 これを説明するモチベーションは、「畳み込み層は線形層よりも優れた発展的手法、複雑な手法であるという勘違いが 初学者の中であるのではないかと感じ、それの解消をするためです。 以降、畳み込み層と線形層の最たる違いを主張するために、線形層のことを全結合層と呼ぶことにします。 この呼び名は、TensorFlowやKerasなどのフレームワークで採用されています(layers.dense)。 全結合層 全結合層の数式 まず全結合層について数式を以下に示します。 入力ベクトル$x \in \mathbb R^{D}$に対し
はじめに 復習 一般化線形モデル、あるいは確率モデル 確率モデル+線形モデル ガウス分布 ポアソン分布 ベルヌーイ分布 手順のまとめ 階層モデルの序論 最後に はじめに まずモデルを簡単な数式で見ていく話は、以下の2つの記事から続いてきました。 s0sem0y.hatenablog.com s0sem0y.hatenablog.com もしかすると、この記事から見たほうがむしろ見通しが良いのかもしれません。 今回の記事は確率モデルや線形モデルをゴチャゴチャ組み合わせていろいろなモデルを考えられるという話をします。 というより、ほとんど全てのモデルが個々に該当するのではないかと思われます。 組み合わせて作られたモデルは最尤推定やベイズ推定、ときには確率を意識しない適当な損失関数の最小化によってパラメータが決定されていきます。 さて大枠を捉える前に基本的な復習です。 復習 $$ y = f(w
はじめに コード比較 numpy pytorch TensorFlow eager execution 速度と結果の比較 結果 第二回戦 結果 はじめに 最近わたしはTensorFlowにボコボコにされています。 計算グラフを書いて、sess.runするまでは何が起こるかわからない!何かが起こっても何が起こっているかは分からない! そんな状態から、TensorFlow eager executionの登場で解放された!……かに思えました。 今回は下記のTensorFlowとnumpyによるカルマンフィルタの実装例に見て、 これがTensorFlow eager executionでどれくらい楽になるかを試してみました(やる前からそれほど楽ではないことは分かっていた)。 カルマンフィルタといえば理論は非常に難解ですが、実装は意外と楽チンで、実用上非常に優れた予測モデル(と言っていいかは微妙で
はじめに 一般線形モデル 最小二乗法 最小二乗法の背後に潜む仮定 まとめ ちょっとした例題 一般化線形モデル 出力を加工する ノイズについて考えなおす ロジスティック回帰モデル 線形モデルをいじったロジスティック回帰モデルの考え方 最後に はじめに 前回の記事 s0sem0y.hatenablog.com の続きってほど滑らかに繋がってはいませんが、少し突っ込んだ話に行きます。 ここでは前回、データ$x$から$y$を予測する場合のモデルが $$ y = f(x) $$ と表せるようなケースを想定して話を進めました。その際のポイントとして、 $$ y = f(x) = w\cdot \phi(x) $$ と、(非線形)変換$phi(x)$を噛ませた後に$w$を重みとした線型結合を考えるという手順を踏みました。 $\phi(x)$の選び方や$w$の求め方に特に具体的な制限を設けずに前回は話しま
はじめに 機械学習のモデル 教師あり学習 機械学習における予測モデルの基本的な作り方 予測モデルfの考え方 $\phi(x)$の決め方 特徴量エンジニアリング モデル選択 ニューラルネットワーク 複数の予測モデルの活用 アンサンブル ベイズ予測分布 はじめに 機械学習のモデルには数多くのものが存在します。 例えばサポートベクターマシンやニューラルネットワーク、ロジスティック回帰モデルなど、初学者にとってどれが何のために生み出され、 そしてどのような時に有効なのかを把握することは難しいように思います。 そこで今回はある特定のモデルについて細かく見るのではなく、機械学習のモデルが何を表し何を達成しようとしているのかの概観を与え、 それぞれのモデルがどういう時に使えそうなのかの感覚を身につける手がかりのようなものを書いてみたいと思います。 (最初、一般化線形モデルからベイズまでそれなりにしっかり
はじめに GPUのメモリを必要な分だけ利用 GPU、CPU 、numpyとの変換 eagerモードでのGPU利用とCPU利用 tf.Tensorとnumpy 基本的な演算 四則演算 論理演算 商以下の最大整数と余剰 (偏)微分関数 学習で用いる微分関数 最後に はじめに 前提として以下のimport文を書いているものとします。 また対話的に実行をするためにeagerモードを用います。 import tensorflow as tf import tensorflow.contrib.eager as GPUのメモリを必要な分だけ利用 GPU利用時に以下のコードでTensorFlowは必要な分のメモリを逐次利用していくようになります。このように明記しない場合には、TensorFlowはeager modeであろうがなかろうが、GPUのメモリを可能な限りほとんど全て専有してしまいます。 con
はじめに 自動微分に関すること 全バッチのLossを計算 Validation時に計算グラフを保持しない VariableのRank変更 viewメソッドが使えないケース(メモリの同一ブロックに格納されていない) ドロップアウト関数とドロップアウトクラス 使い分け?? 順伝播毎に異なるドロップアウト率を採用する ドロップアウトを用いたベイズ学習とベイズ予測分布の近似 自分で層を定義する 全結合層を作る 最後に はじめに 最近、TensorFlowのEagerが登場したため、Debugの難しさという欠点が緩和される見込みがあります。そこで私自身はPyTorchからTensorFlowに移行しようかなと思っているところです。 s0sem0y.hatenablog.com その前にPyTorchでところどころ実装時に躓いたりした部分をまとめておきたいと思います。PyTorchに自分自身が戻ってき
はじめに ハイパーパラメータ自動調整の概要 学習という関数 グリッドサーチ 関数近似器(ガウス過程)による方法 メタヒューリスティック最適化 強化学習 まとめ ライブラリ はじめに ディープラーニングのハイパーパラメータ調整がとんでもなく退屈なことは周知の事実(?)です。一度学習を回すとその経過が気になってログを眺めてしまう人も多いのではないでしょうか。どうも望みがなさそうならさっさと次の値を試したいという思いもあることでしょう。そして、なるべく数を打ちながら良さげなハイパーパラメータの範囲を早く絞り込みたいと思うのではないでしょうか。 こういうこと自体を上手く自動化するような試みが欲しくなります。古典的な方法ではグリッドサーチで、とにかく考えうるパターン全部試してやれ!というものがあります。しかしこの方法はディープラーニングのように一回の学習に時間が掛かる場合には有効ではありません。 今
ベイズ推論による機械学習入門の内容 本の中身の概要 機械学習とベイズ学習 基本的な確率分布 ベイズ推論による学習と予測 混合モデルと近似推論 応用モデルの構築と推論 個人的な所感 誰にオススメか オススメじゃない人 機械学習自体に入門したい人 線形代数や微分積分の基本に自身がない人 オススメな人 ベイズ推論による機械学習入門の内容 機械学習スタートアップシリーズ ベイズ推論による機械学習入門 (KS情報科学専門書) 作者: 須山敦志,杉山将出版社/メーカー: 講談社発売日: 2017/10/21メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 本の中身の概要 機械学習とベイズ学習 この章では回帰、分類、クラスタリング、次元削減などの機械学習における基本的なタスクについてサラッとおさらいし、 これらのタスクを実際に実行するための方法として「ツールボックスとしての機械学
はじめに いろいろな主成分分析 モチベーション1:圧縮された際の誤差を最小化したい モチベーション2:圧縮先での表現力を高めたい モチベーション3:隠れたデータの発生源を知りたい モチベーション4:観測データに不確定要素があり、そのデータが得られる過程を知りたい モチベーション5:データから潜在変数の次元(あるいは圧縮の次元)まで求めたい 最後に はじめに 今回は主成分分析という機械学習でも非常に基本的な手法を用いて、機械学習モデルの見方を学んでいきます。これはどういうことかというと、ある1つのモデルに対しての見方が複数あるということです。ある1つのモデルを調べあげたら他の発展が見られたというケースもありますし、元々独立に発見されたが同じものであったというケースもあります。 主成分分析の場合は「Karhunen-Loeve展開」と呼ばれる場合もあり、信号処理などの分野で独立に発見された手法
はじめに 本書の概要 本の対象者 必要な前提知識 おすすめできない人 おすすめの人 はじめに 今回は2017/9/21に出版された「速習 強化学習-基礎理論とアルゴリズム」についてザッと読んだ感想などを述べていきます。 速習 強化学習 ―基礎理論とアルゴリズム― 作者: Csaba Szepesvari,小山田創哲,前田新一,小山雅典,池田春之介,大渡勝己,芝慎太朗,関根嵩之,高山晃一,田中一樹,西村直樹,藤田康博,望月駿一 出版社/メーカー: 共立出版 発売日: 2017/09/21 メディア: 単行本 この商品を含むブログを見る 本書の概要 マルコフ決定過程 価値推定問題 制御 さらなる勉強のために 割引マルコフ決定過程の理論 TD法の前方観測的な見方と後方観測的な見方について 深層強化学習を含む最近の発展 となっています。 特筆すべきなのは、問題を数式で定式化してから解説するというこ
はじめに 最適制御 そもそも制御問題とは? 自動制御 フィードバック制御 制御問題の例 最適制御問題 最適制御のまとめ 最適制御から強化学習へ 最適制御の困難 強化学習の形式と最適制御との比較 環境の振る舞いを知る方法は無いのか 強化学習の大まかな流れ モンテカルロ法 TD法 関数近似 最後に 制御の分野と強化学習 基本的思想の違い 実用的問題 PID制御という巨人 はじめに 強化学習といえば、最強の囲碁ソフトAlphaGo に搭載されているアルゴリズムで一躍有名となった分野です。今回は強化学習の特殊な問題設定がどういうものであるかを強調するため、最適制御としての立場から発展させた強化学習を見てみたいと思います。 最適制御 そもそも制御問題とは? 例えば、自動車の速度を調整する場合、タイヤの回転を調整する必要がありますが、私達が実際にやっているのはアクセルやブレーキを踏み込むことだけです。
はじめに 前回の復習 インパルス応答でのシステムの考え方 インパルス応答を作る=線形時不変システムを作る 補足 リアルタイムで動くシステム 線形差分方程式によるフィルタ設計 FIRフィルタとIIRフィルタ FIRフィルタ IIRフィルタ 線形差分方程式によるフィルタ処理 scipy.signal.lfilter 最後に 周波数解析へ進むとできること インパルス応答の議論は必要だったのか? 周波数領域での解析を最初からやればいいんじゃないのか はじめに 以下の記事の続き的な記事です。需要の無さは理解していますが自分の勉強と復讐を兼ねて記事を書いていきます。 s0sem0y.hatenablog.com 前回の復習 話の骨子は、のときのみを取るインパルス信号を導入することで、任意の入力信号を と表現できることから始まり(前回記事では、って別の文字を置いてましたが、実際のところ上記で良い)、線形
はじめに 簡単なフィードフォワードニューラルネットワーク nn.Module nn.Module part2 Sequential Sequential part2 nn.ModuleList 次回は はじめに Pytorchはニューラルネットを柔軟に設計できるように、様々な実装の方法が提供されています。今回はその中でも基本的な書き方をいくつか紹介することにします。書きたいニューラルネットの規模やカスタマイズしたい内容によって書き方を変えれば、効率よく素早いコーディングが可能になるはずです。 前提として以下がimportされている状態で進めます。 簡単なフィードフォワードニューラルネットワーク 今回は隠れ層が2つで、出力層が1つの3層フィードフォワードニューラルネットワークを例に使います。 nn.Module nn.Moduleを継承して書くスタイルは、Chainerでchainer.Ch
初めに 理論的な話題 渡辺先生の理論 体系的に学べる無料動画 実践的な話題 変分ベイズ法 サンプリング法 プログラミングの話題 当ブログの記事 初めに ベイズの勉強中の私が、個人的に良かった!良さそう!と思った記事をメモした記事です。 理論的な話題 渡辺先生の理論 有名な赤池情報量基準(AIC)やベイズ情報量基準(BIC)を更に広範囲に適用可能にしたWAIC並びにWBICを導出した渡辺先生の理論をまとめてくださっている記事です。純粋数学専攻の立場から、ベイズ統計について解説してくださっており、どこまでをどのレベルの数学を用いて理解すべきかの指針にも触れられています。 mathetake.hatenablog.com 主に以下の書籍の内容に書かれていることの要約と言っていいでしょう。 ベイズ統計の理論と方法 作者: 渡辺澄夫 出版社/メーカー: コロナ社 発売日: 2012/03/01 メデ
はじめに ChainerとPytorchのLSTMの命名 LSTMの基本 Chainerの場合 Pytorchの場合 PytorchのLSTM 追記 はじめに Chainerを使っていた人がPytorchを使おうとした時、LSTMで躓くことがあるらしいです。 ChainerとPytorchのLSTMの命名 LSTMの基本 まず非常に基本的なことなのですが、LSTMの出力というのは、前回の出力とセルの状態、そして現在の入力に依存します。 実装上は、 となっており、実際戻り値のとが通常は全く同じものですが、とを保持しておいて、次回の入力にするという形でLSTMを構築します(ドロップアウトが入れば、の方のみ適用されたりしますが、まあそれは応用上の話)。 手持ちデータの系列の長さがならば、を逐次入れていくようなfor文を書けば、晴れてLSTMを実装できるというわけです(LSTMの内部の計算というの
はじめに Torch.Tensor 多次元配列 torch.Tensor torch.Tensorの型変換 .cuda() torch.autograd.Variable chainer.Variableとtorch.autograd.Variable torch.autograd.Variableの配列データを見る GPUへの転送 chainerのgpu利用補足 cupyへの期待(余談) Variableを使った微分 実装上の注意 最後に はじめに 残念ながら(?)ChainerとPytorchの優劣を決めるわけではありません。 Chainerから移行し、Pytorchを利用していく中で自分が気に掛かったところを比較、メモした記事です。このメモ内容がPytorchビギナーにもしかしたら有用かもしれないと思い記事にしました。 基本的にAtomのHydrogenプラグインを用いて、Jupyt
はじめに Pytorch 簡単な例題で遊ぶ データを作る Torchへ変換する ミニバッチトレーニングのためのデータ準備 ニューラルネットを作る 最適化関数をセットして学習 最後に はじめに 最近Chainerの素晴らしさを再認識し、TensorFlow+KerasからChainerに舞い戻ってきました。一方で、世界的にはPytorchの活躍が見られることも認識していました。 ChainerをフォークしたPytorchが一体どんなものなのか気になり、ここ数日触れている内にPytorchも素晴らしい(Chainerが素晴らしいんだから当たり前だけど)ことが分かってきました。 Chainerに触れたことがある人ならば、それほど違和感なくPytorchを操ることができるでしょう。今はChainerの方が便利ですが、開発参加者の数を考える上では今後どうなるかわかりません。ここで少しだけPytorc
はじめに ベイズ推定の概要 統計学の考え 伝統的統計学の考え ベイズの考え ベイズ統計学 ベイズ統計学の基本道具 乗法定理 独立性 加法定理 ベイズの定理 ベイズでの統計パラメータの考え方 ベイズ機械学習 機械学習で行われる基本的な仮定と学習 機械学習の方法論 MAP(最大事後確率)推定 変分ベイズ サンプリング ベイジアンが見ているもの モデルの仮定は正しかったのか? ハイパーパラメータ 全て確率変数から始める 最後に はじめに 思いの他反響のなかったベイズに関する以下の記事に続き、性懲りもなくベイズの話をします。(ディープラーニングみたいに爆発的な流行は無いけど、ベイズは今後絶対注目度が高まるよ!!) s0sem0y.hatenablog.com ベイズ推定の概要 前回はベイズがどういう考えをしていて、結果的にどういうことをしていることになるのかという話を(不正確な点も含みながら)説明
はじめに 学習の際のデータの与え方 バッチ学習、ミニバッチ学習、オンライン学習 バッチ学習 オンライン学習(確率的勾配法) ミニバッチ学習 ミニバッチ学習のコードサンプル データを単に小分けにして入れる 本当のミニバッチ学習(確率的勾配法) 全体のコード 最後に 可視化したい はじめに 前回までのチュートリアルは、それぞれ 1.TensorFlowの書き方や考え方と共にニューラルネットの構築を学びました。 s0sem0y.hatenablog.com 2.構築したニューラルネットの学習をさせる方法を学びました。 s0sem0y.hatenablog.com これで最低限のことができるようにはなったのですが、今回学ぶことは ミニバッチ学習の考え方 ミニバッチ学習の実装 Accuracyとlossの表示の際の注意点 の3つになります。これらは学習を実際に行う上で必須となるものなので、必ず抑える
はじめに Chainer 利点欠点 感想 誰にオススメか TensorFlow 利点欠点 感想 誰にオススメか Keras 利点欠点 感想 誰にオススメか Pytorch なぜPytorchを選んだか Pytorchがfast.aiとその受講生にもたらす利点 誰にオススメか(使ったこと無いので偏見) フレームワーク検索ボリューム(一新しました) Define by Runで有名なChainerとPyTorch比較 比較範囲:日本 比較範囲:全世界 Chainer、PyTorch、TensorFlow、Kerasの比較 比較範囲:日本 比較範囲:世界 はじめに この記事を公開してから1年以上の月日が経っていました。 Google検索で、「TensorFlow PyTorch」という検索ワードを入れるとそれなりの上位にこの記事が表示されていたので、あまりに情報が古いということで更新することにい
はじめに 自然言語処理の深遠 作って遊ぶ機械学習 六本木で働くデータサイエンティストのブログ 人工知能に関する断創録 数学、ときどき統計、ところによりIT 空飛ぶロボットのつくりかた はじめに ただの雑記。 専門書的な内容ではなく、機械学習に取り組む実際の姿が見られるブログを取り集めました。例えばコードが載っているとか、分かりやすい解説があるとか、その手の記事が書かれているものに焦点を絞っています。 自然言語処理の深遠 非常に実践的。 今のところは、あまり記事は多くありませんが、Kerasを使った機械学習による自然言語処理に関しての記事が積極的に書かれています。Kerasの実装に関して、コードで検証を行っていたり、実用面で参考になることが多いと思われます。 hironsan.hatenablog.com 特に自然言語処理だとChainerやPyTorchのようなDefine by Runの
はじめに 目標の設定と指標の決定 目標の設定 指標の決定 評価指標に対する最低限の知識 機械学習における知識(補足) ニューラルネットワークの学習 最初に使うニューラルネットワーク 時間的にも空間的にも独立である複数の特徴量を持つデータ 空間の局所的な構造に意味のある多次元配列データ(例えば画像) 時間的な変動に意味のあるデータ(例えば音声、自然言語) ニューラルネットワークの細かい設定 ユニットの数と層の数 正則化 活性化関数 ドロップアウト バッチ正規化 学習の早期終了 性能が出ない場合 データの追加収集 ニューラルネットの設定をいじる 用いるニューラルネット自体を変更する 新たなニューラルネットワークの考案 コードを書くにあたって データ成形 結果を記録するコード フレームワークの利用 フレームワークの選択 ChainerとPyTorch TensorFlow Keras 最後に は
はじめに 補足 TensorFlowの書籍 Tensorflow・Kerasによる時系列データ処理 TensorFlowはじめました TensorFlow機械学習クックブック Hands-On Machine Learning Chainer Chainerによる実践深層学習 Chainerで学ぶディープラーニング入門 はじめに ディープラーニングを活用する上ではフレームワークの利用は避けられません。実際のところは、ディープラーニングだけでなく、多くのプログラムは世の中に出回っている有用なフレームワークを上手く駆使して実装されます。 例えばnumpyだってPythonに標準的に搭載されているものではありませんが、計算処理は多くの場合numpyを使って行われます。図を表示したい場合はmatplotlibを使いますし、データの操作を行いたければpandasを使うことでしょう。 プログラミング言
統計物理学の始まり 統計物理の着想は熱力学にあり 熱力学におけるエントロピーという概念の導入 統計物理学のモチベーション 統計物理学の着想 統計物理学を始める上での基本 熱の移動の正体 統計物理学でのエントロピー 統計力学と機械学習 情報統計力学 イジングモデル イジングモデルを更に一般化したスピングラスモデル 統計力学が機械学習にもたらすもの 機械学習での発展 最後に 量子アニーリングコンピュータ ベイズ 統計物理学の始まり まず統計物理学がどんなものかを説明しましょう。ここを定性的にでも把握しておくと、だいぶ機械学習に近しい考え方を持っていることを強く実感できるはずです。 統計物理の着想は熱力学にあり 統計物理学は熱力学からやって来ました。 私達は生活の中で容易に実感できるように、「熱」というものが温度の高い方から低い方へ流れていくことを知っています。運動エネルギーや化学エネルギー、電
次のページ
このページを最初にブックマークしてみませんか?
『HELLO CYBERNETICS』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く