No.1 機械学習まとめ

 

[info][title]機械学習[/title]
1データ作成
→購入可能
ディレクションルール(アプリ制作
→作成n購入可能
[/info]

情報順列
大項目→小項目
1→4
人工知能
機械学習
アルゴリズムの分類
4技法

※尚理論の項目についてはヒストリーからの読み解き、抽象物もあるため省略。

How to be professional
10.000h
You need 1,250days,if you can study 8hs per day.

1概論/理論学習 
2数学 線形代数/ 微分積分/ 確率・統計学
3言語 Ruby/Python/C言語


[info]
[title]1 人工知能/AI [/title]
AI)とは、「計算機(コンピュータ)による知的な情報処理システムの設計や実現に関する研究分野」
AIは2つの学派に大別される。1つは従来からのAIで、もうひとつは計算知能(CI[7])である。

[info]
区分:AI 人工知能/CI 計算知能/(ACT-R/統合型)
・AI 人工知能 機械学習/フォーマリズムと統計分析を特徴としている。
・CI 計算知能
・ACT-R/統合型
[/info]

人工的な知能の実現へのアプローチとしては、「ファジィ理論」や「ニューラルネットワーク」などのようなアプローチも知られているが、従来の人工知能[4]との差は記述の記号的明示性にあると言えよう。近年では「サポートベクターマシン」が注目を集めた。また、自らの経験を元に学習を行う強化学習という手法もある。

AI】
[info]
区分:
エキスパートシステム
事例ベース推論(CBR)
ベイジアン・ネットワーク
ふるまいに基づくAI
[/info]
* エキスパートシステム:推論機能を適用することで結論を得る。エキスパートシステムは大量の既知情報を処理し、それらに基づいた結論を提供することができる。例えば、過去の Microsoft Office には、ユーザが文字列を打ち込むとシステムはそこに一定の特徴を認識し、それに沿った提案をするシステムがついていた。
* 事例ベース推論(CBR):その事例に類似した過去の事例をベースにし、部分修正を加え試行を行い、その結果とその事例を事例ベースに記憶する。
* ベイジアン・ネットワーク
* ふるまいに基づくAI:AIシステムを一から構築していく手法

CI】
[info]
区分:
ニューラルネットワーク
ファジィ制御
進化的計算
[/info]
* ニューラルネットワーク:非常に強力なパターン認識力を持つシステム。コネクショニズムとほぼ同義。
* ファジィ制御:不確かな状況での推論手法であり、最近の制御システムでは広く採用されている。
* 進化的計算:生物学からインスパイアされた手法であり、ある問題の最適解を進化や突然変異の概念を適用して求める。この手法は遺伝的アルゴリズムと群知能に分類される。
ACT-R/統合型】
エキスパートの推論ルールを、統計的学習を元にニューラルネットワークや生成規則を通して生成する。


関連:概要
https://www.sejuku.net/blog/7290


[title]2機械学習[/title]
機械学習(きかいがくしゅう、英: machine learning)とは、人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のことである。

センサやデータベースなどから、ある程度の数のサンプルデータ集合を入力して解析を行い、そのデータから有用な規則、ルール、知識表現、判断基準などを抽出し、アルゴリズムを発展させる。なお、データ集合を解析するので、統計学との関連が深い。

そのアルゴリズムは、第一にそのデータが生成した潜在的機構の特徴を捉え、複雑な関係を識別(すなわち定量化)する。第二にその識別したパターンを用いて、新たなデータについて予測を行う。データは、観測された変数群のとりうる関係の具体例と見ることができる。一方、アルゴリズムは、機械学習者として観測されたデータの部分(訓練例などと呼ぶ)を学習することで、データに潜在する確率分布の特徴を捉え、学習によって得た知識を用いて、
知的な決定を行う[1]。

[info]
区分:数学
* 線形代数
* 微分積分
* 確率・統計学
[/info]
数学】
機械学習ではデータを分析することが基本となるので、「数学の知識」が必要です。
具体的には
* 線形代数
* 微分積分
* 確率・統計学
の3つが必要とされています。

勉強:
https://www.coursera.org/learn/machine-learning
ツール:
https://studio.azureml.net/
関連:概要
https://ai-kenkyujo.com/category/blog/machine-learning/
https://www.sejuku.net/blog/7630

[title]3アルゴリズムの分類[/title]
[info]
区分:
教師あり学習
教師なし学習
半教師あり学習
強化学習
トランスダクション
マルチタスク学習

[/info]


機械学習アルゴリズムは、要求される結果により以下のように分類される。
教師あり学習
入力とそれに対応すべき出力(人間の専門家が訓練例にラベル付けすることで提供されることが多いのでラベルとも呼ばれる)を写像する関数を生成する。例えば、分類問題では入力ベクトルと出力に対応する分類で示される例を与えられ、それらを写像する関数を近似的に求める。
教師なし学習
入力のみ(ラベルなしの例)からモデルを構築する。データマイニングも参照。
半教師あり学習(英語版)
ラベルありの例とラベルなしの例をどちらも扱えるようにしたもので、それによって近似関数または分類器を生成する。
強化学習
周囲の環境を観測することでどう行動すべきかを学習する。行動によって必ず環境に影響を及ぼし、環境から報酬という形でフィードバックを得ることで学習アルゴリズムのガイドとする。例えばQ学習がある。
トランスダクション(英語版)(トランスダクティブ推論)
観測された具体的な(訓練)例から具体的かつ固定の(テスト)例の新たな出力を予測しようとする。
マルチタスク学習(英語版)
関連する複数の問題について同時に学習させ、主要な問題の予測精度を向上させる。

[title]4技法[/title]
[info]
区分:
決定木学習
相関ルール学習
ニューラルネットワーク (NN) /人工ニューラルネットワーク (ANN) /ディープラーニングまたは深層学習
遺伝的プログラミング (GP)
帰納論理プログラミング(ILP)
サポートベクターマシン (SVM)
クラスタリング
ベイジアンネットワーク
強化学習
表現学習
[/info]

決定木学習
決定木を予測モデル(英語版)として使用した学習であり、アイテムについての観測をそのアイテムの目標値についての結論とマッピングする。具体例としてID3やRandom forestがある。
相関ルール学習(英語版)
大規模データベースにおける変数間の興味深い関係を発見するための技法。
ニューラルネットワーク (NN)
人工ニューラルネットワーク (ANN) とも呼ばれ、生物の神経ネットワークの構造と機能を模倣するという観点から生まれた学習アルゴリズムである。人工神経を相互接続したもので計算を構造化し、コネクショニズム的計算技法で情報を処理する。現代的ニューラルネットワーク非線形な統計的データモデリングツールである。入力と出力の間の複雑な関係をモデル化するのに使われ、データのパターン認識や観測された変数間の未知の同時分布における統計的構造を捉えるなどの用途がある。

関連:
ディープラーニングまたは深層学習(英: deep learning)とは、(狭義には4層以上[1][注釈 1]の)多層のニューラルネットワーク(ディープニューラルネットワーク、英: deep neural network)による機械学習手法である[2]。深層学習登場以前、4層以上の深層ニューラルネットは、局所最適解や勾配消失などの技術的な問題によって充分学習させられず、性能も芳しくなかった。しかし、近年、ヒントンらによる多層ニューラルネットワークの学習の研究や、学習に必要な計算機の能力向上、および、Webの発達による訓練データ調達の容易化によって、充分学習させられるようになった。その結果、音声・画像・自然言語を対象とする問題に対し、他の手法を圧倒する高い性能を示し[3]、2010年代に普及した[4]。しかしながら、多層ニューラルネットが高い性能を示す要因の理論的な解明は進んでいない[3]。
https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0
ツール:
https://ai-kenkyujo.com/2017/12/05/neural-network-console/

遺伝的プログラミング (GP)
生物の進化を模倣した進化的アルゴリズムに基づく技法であり、ユーザーが定義したタスクを実行するプログラムを探索する。遺伝的アルゴリズムを拡張・特化させたものである。所定のタスクを実行する能力によって適応度地形を決定し、それによってコンピュータプログラムを最適化させていく機械学習技法である。
帰納論理プログラミング(英語版) (ILP)
例、背景知識、仮説を一様な表現とし、論理プログラミングを使って学習を規則化する技法である。既知の背景知識と例の集合をコード化して事実の論理データベースとし、全てのポジティブな例を含み、ネガティブな例を全く含まない仮説的論理プログラムを生成する。
サポートベクターマシン (SVM)
分類や回帰に使われる一連の教師あり学習技法である。訓練例のラベルは二値分類(2つに分類される)であり、訓練アルゴリズムによってモデルを構築し、新たな例がどちらに分類されるかを予測する。
クラスタリング
クラスタリングは、観測された例をクラスタと呼ばれる部分集合に振り分けるもので、振り分けは事前に指示された基準に従って行う。クラスタリングはデータの構造についての仮説(基準)の立て方によって結果が異なる。仮説は「類似尺度」で定義され、「内部コンパクト性」(同一クラスタ内のメンバー間の類似性)や異なるクラスタ間の距離によって評価される。「推定密度」や「グラフ接続性」に基づく技法もある。クラスタリングは教師なし学習技法であり、統計的データ解析でよく使われる。
ベイジアンネットワーク
確率変数群とそれらの条件付き独立性(英語版)を有向非巡回グラフ (DAG) で表した確率論的グラフィカルモデルである。例えば、病気と症状の関係を確率的に表すことができる。そのネットワークに症状を入力すれば、考えられる病気の一覧を確率付きで出力できる。これを使って推論と学習を行う効率的アルゴリズムが存在する。
強化学習
「エージェント」が「環境」の中でどのような「行動」をとるべきかを、何らかの長期的「報酬」を最大化するよう決定する。環境の「状態」からエージェントの行動への写像を行う「方針」を求めるのが強化学習アルゴリズムである。正しい入出力例は与えられないし、最適でない行動が明示的に訂正されることもないので、教師あり学習とは異なる。
表現学習(英語版)
教師なし学習アルゴリズムの一部は、訓練中に提供された入力のよりよい表現を発見しようとする。古典的な例として主成分分析やクラスタ分析がある。入力の持つ情報は保持したまま、分類や予測の前に入力をより便利な表現に変換するアルゴリズムもある。その際に入力データが従っている未知の確率分布から入力を再建できるようにするが、その確率分布においては信じがたい例も忠実に再現する必要はない。例えば多様体学習(英語版)アルゴリズムは、何らかの制約下で入力の次元を低く変換して表現する。スパースコーディング(英語版)アルゴリズムでは、入力が疎ら(ゼロが多い)という制約下で同様の表現の変換を行う。ニューラルネットワークの深層学習は複数レベルの表現または特徴の階層を発見するもので、低いレベルで抽出した特徴から高いレベルの抽象化した特徴までを求める。知的機械は、観測されたデータを説明する偏差の潜在的要因を解きほぐす表現を学習するものだという主張もある[8]。

 


[title]その他 開発[/title]
[info]
区分:
Ruby/Python/C言語
Python
[/info]

Ruby/Python/C言語 etc→wit.ai
話しかけたり、文章を送って動かせるアプリケーションを簡単に作ることができます。
「モバイルアプリ」「ウェアラブル」「ロボット」にいたるまで、さまざまなデバイスのものを作ることができます。

Python→JASPER
音声認識機能」をはじめ「天気」「ニュース」「Gmailの受信トレイ」「Facebookの通知との連携機能」などを利用できるようになります。
ラズベリーパイを使って音声認識アプリケーションを作れるPython製のサービスです。

 


人工知能を使ってアプリを作ることができるサイトをご紹介します。
wit.ai
「Wit.ai」を使うと、話しかけたり、文章を送って動かせるアプリケーションを簡単に作ることができます。
Ruby」「Python」「C言語」など多くのプログラミング言語で作れるようになっています。
さらに「モバイルアプリ」「ウェアラブル」「ロボット」にいたるまで、さまざまなデバイスのものを作ることができます。
好きなプログラミング言語を使って人工知能アプリを作りたい方におすすめです。
JASPER
Jasperは、ラズベリーパイを使って音声認識アプリケーションを作れるPython製のサービスです。
音声認識機能」をはじめ「天気」「ニュース」「Gmailの受信トレイ」「Facebookの通知との連携機能」などを利用できるようになります。
Pythonを使ってアプリを作りたい方におすすめです。
[/info]
以上