"機械学習","信号解析","ディープラーニング"の勉強

HELLO CYBERNETICS

深層学習、機械学習、強化学習、信号処理、制御工学などをテーマに扱っていきます

人工知能

TensorFlowを始める知識準備の手順

はじめに 始める前の準備 プログラミング ニューラルネットワーク テンソルのこと 動かしながら検討 様々なタイプのニューラルネット 更に理解を深める

ニューラルネットのための最適化数学

はじめに 最適化数学 最適化問題の簡単な例 例題の解法 微分による解法の注意点 凸最適化問題 凸関数 凸関数の定義 ニューラルネットの学習 ニューラルネットの目的関数 ニューラルネットの勾配降下法 パラメータを求める戦略 勾配降下法 ニューラルネットの…

本格的に深層学習をやりたい人はTensorFlowがいいのか?

なぜTensorFlow Google発である もともとテンソル計算と計算グラフを記述するもの 利用者が多い TensorFlowの弱点 ネットワークを動的に書き換えられない 対応GPUが高価 64bitにのみ対応 私自身

時系列データ:隠れマルコフモデルの基礎と、リカレントネットの台等

はじめに 隠れマルコフモデル 確率分布として考える 隠れていないマルコフモデル 隠れマルコフモデル 隠れマルコフモデルの学習 隠れマルコフモデルでの予測 隠れマルコフモデルで何ができるか リカレントネット リカレントネットの構造 時間方向への展開 深…

ChainerのDefine by Runとは?

Define by Run Define by Run Define and Run 具体例を見る 上記のコードのネットワークにおける動作

chainer記事のメモ

はじめに 記事のまとめ chainer導入 Pythonの導入 chainer導入 chainer入門 chainer公式ドキュメントのIntroduction 英語ができない場合のintroduction chainerの理解を深める chainer応用 正則化やドロップアウト 独自データを用いる 画像データ テキストデ…

kerasとchainerの違い

KerasとChainer Keras Chainer 比較 Kerasの役割 Chainerの役割 Kerasでの実装 Chainerでの実装 使い分け Chainerがいいなあ Googleの強さ 使い分け

ささっと使ってみたい人にオススメ、深層学習ライブラリ「Keras」

Kerasとは? TensorFlowを使うのと何が違うのか インストールの方法 TensorFlowの場合 Theanoの場合 Chainerに比べたアドバンテージ Kerasは最初の一歩にオススメ

機械学習手法を理解する手順

はじめに プログラムへの理解度 機械学習への理解度 何が重要か アルゴリズムとしての理解 アルゴリズムとプログラム プログラムの理解 アルゴリズムとしての理解 機械学習手法を理解する方法 機械学習を抑えるためのポイント 更新式を理解すること 判別も回…

クラスタリングの基本

はじめに クラスタリングと教師なし学習 教師なし学習 クラスタリング クラスタリングの手法 凝集型クラスタリング 重心法 単連結法 完全連結法 まとめ k-means 発展的話題

畳み込みニューラルネットワークの基礎

事前知識 テンソルで理解しておくべきことは意外と少ない 畳み込みとは 畳み込み 畳み込みニューラルネット 畳み込みニューラルネットの畳み込み処理 空間フィルタ 畳み込み層 RGB画像を扱う場合 畳み込み層まとめ 分類の方法について プーリング層 活性化関…

Irisデータを使ってChainerを試してみましょう

Chainer Chainerの基本的な使い方 まず使ってみましょう IRISデータの分類問題を対象とした全体コード 試してみること 学習中に見るべきところ

ニューラルネットワークの中間層の働き、その他脳のモデル

ニューラルネットワーク 脳のモデルとしての構造 連合層(中間層)の役割とは ニューラルネットの特徴抽出 ニューラルネットワークは本質的に教師あり学習 強化学習 強化学習の概要 Q学習 深層強化学習:Deep Q Network 脳との関連 その他 連想記憶ネットワ…

現在の人工知能開発

人工知能の歴史の全体像を簡単に概観した以下の記事が多くの人に見られるようになりました(大変うれしいことです)。 s0sem0y.hatenablog.com これを見て非常に多くの人が人工知能に関心を寄せていることを再確認いたしましたので、人工知能開発における別…

TensorFlowのtutorial:MNIST For Beginners解説

事前知識 ニューラルネットワークの構造 出力層は何を出力するのか ニューラルネットワークの学習 ミニバッチ学習 まとめ MNIST For Begginers はじめに MNISTとは Bigginersで使うニューラルネット ニューラルネットワークの数式 Tutorialのコードの解説 全…

出力層で使うソフトマックス関数

ニューラルネットの分類問題 分類するクラスの数=出力層のユニットの数 ラベルデータ 現実の出力 ソフトマックス関数 確率を出力している 交差エントロピー 損失関数 交差エントロピーを用いる理由

自己符号化器(オートエンコーダ)と主成分分析との関係

自己符号化器の役割 自己符号化器の構成方法 数式を見る 損失関数を見る 主成分分析の復習 主成分分析の復習 主成分分析の次元削減 自己符号化器と主成分分析 損失関数の書き換え 主成分分析との比較 自己符号化器の価値 非線形性を容易に表現 雑音に対する…

深層学習:ハイパーパラメータの設定に迷っている人へ

既に深層学習は、chainerやtensorflowなどのフレームワークを通して誰の手にも届くようになっています。機械学習も深層学習も、あまりよくわからないが試してみたいなという人が数多くいるように思います。そして、実際に試している人たちもたくさん居るでし…

ニューラルネットワークによる学習の停滞はどこから生ずるか

現在機械学習ではディープラーニングの活躍が目立っています。 その基礎はニューラルネットワークの学習にあり、この学習を知っているのとそうでないのとでは、各手法に関する理解度が大きく異なってくるものと思います。 今回はニューラルネットワークの学…

評価関数で見る機械学習手法

最近、学習は最適化問題に帰着されるということを自分自身強く意識するようになりました。 そこで有名なSVMや対数線形モデルなどの評価関数を見て、それぞれがどのような狙いを持っているのかを概観してみようと思います。 Support Vector Machine 評価関数 …

機械学習を発展させる3つの立場

機械学習をしようという場合には大きく分けて3つの立場があるように思います。 1.機械学習手法の狙いを提案 2.機械学習手法に対する解法を提案 3.機械学習を使ってデータを解析 機械学習は最適化問題を解くということである どちらのアプローチでも構…

現代のニューラルネットワーク描像

ニューラルネットワークは深層学習(ディープラーニング)によって復活し、多層化されるにつれ、ネットワークのユニット1つ1つに関して注目する機会はさほど多くなくなりました。 元々はニューロン同士の結合を表現したモデルであったため、その繋がりを意…

ディープラーニング最適化の有用記事

ディープラーニングの勉強を進める中で有用だった記事を載せておきます。 勾配法のまとめ記事 最適化から見たディープラーニングの考え方 通常の機械学習における最適化の視点

最小二乗法を例に機械学習を見る

最小二乗法 機械学習的な表現 最小二乗法を機械学習的に書いてみましょう。 モデルの正しさは? 予測性能の基本的な評価方法 機械学習の発展 モデルの表現、確率モデルを用いる方法 モデルを複雑にする方法 ニューラルネット

ここからはじめるディープラーニングの主流手法まとめ【保存版】

ディープラーニングは2006年にトロント大学のHinton氏が考案したDeep Belief Networkから始まりました。このとき考案されたのが事前学習という手法で、一層ずつ層を学習させてから繋げていくことで、一気に深い構造を学習させる際に生じていた勾配消失問題を…

ディープラーニングでの学習収束技術

ディープラーニングでは多くの層とユニットを用いて、非常に高い表現力を持ったネットワーク構造を作り出します。その高い表現力が包含する様々な実現可能な変換の中から、如何にして望む変換を獲得するかが学習のフェイズになります。 この学習では、表現力…

NIPSの採択論文から見る機械学習の動向 [更新]

12月に開かれる機械学習のトップカンファレンスであるNIPS。ここで採択された論文から、近年の機械学習手法の研究動向を見てみたいと思います。 NIPSとは 検索ワード ディープ(deep) スパース(sparse) 最適化(Optimization) 強化学習(Reinforcement learning…

カーネル法

ディープラーニングが現れる以前の機械学習で一斉を風靡した学習機械と言えばSupport Vector Machine(SVM)ですね。このSVMが大活躍した背景には、線形回帰・分離の手法を非線形へ拡張するカーネル法の存在がありました。 今回はそのカーネル法について解説し…

サポートベクターマシン(support vector machine:SVM)の基礎

線形識別器の代表格としてサポートベクターマシンを取り上げます。 機械学習で一躍有名となった手法の1つで、ディープラーニングが流行る以前は「え、まだニューラルネットやっているの?時代はサポートベクターマシンでしょ」と言った雰囲気でした。今はな…

フィッシャーの線形判別

フィッシャーの線形判別は、データを分類する際に統計学の分野で古くから使われている手法です。「判別」という言葉が付いていますが、事実上これはデータを分類するための都合の良い線形変換を見つける手法だと言えます。フィッシャーの線形判別は主成分分…

線形識別モデルの基本

久々の更新になります。 今回からしばらく、線形識別モデルについて記述していきます。 線形識別モデルは、データに対して、そのデータがどのクラスに属するかを分類する最も基本的な方法です。非線形な識別を考える上でも、基本的にはこの線形識別モデルが…

ニューラルネットの表現力と回帰分析

機械学習といえばニューラルネット・ディープラーニングという印象の方も多いと思われます。実際、ニューラルネットはそのアーキテクチャによって様々な種類のデータをうまく扱うことができます。今回はニューラルネットに対して、いろいろなアーキテクチャ…

フィードフォワードニューラルネットワークの基本

今回はニューラルネットワークの話をします。 僕のブログに行き着く人の多くは「ニューラルネットワーク」とか「ディープラーニング」とかで検索している人が多いみたいなので、きっと最も需要がある項目なのでしょう。 ディープラーニングをやるにしても、…

次元の呪いについて再考

最近の機械学習はディープラーニングによって大いに発達し、様々な分野で精度の記録を更新する大躍進を起こしています。しかしその活躍も計算機の設計や多くの学習パラメータの調整にしわ寄せが行っているだけの話で、膨大な次元のデータがもたらす次元の呪…

人工知能の歴史 AIを如何にして達成しようとしたか

※めちゃくちゃ長いです。一連の流れで読むと理解が深まると思います。自身の復習のためにも書き下しました。個々の章で完結しているので、それぞれ別の記事としても掲載しています。 近年は人工知能ブームが到来し、人工知能というワードを当たり前のように…

パーセプトロンの概観とディープラーニングへ

パーセプトロンとサポートベクターマシンの考え方の違いをまとめます。 いずれも線形分離を達成するための手法ですが、線形分離ができない場合はそれぞれ違った手法で線形分離ができそうな問題へと変換していきます。実を言うと幾何的には両方とも同じ処理方…