LoginSignup
2
2

More than 5 years have passed since last update.

AIの概況と機械学習入門

Last updated at Posted at 2019-05-08

【AIの概況について】
■AIとは
http://ainow.ai/artificial-intelligence-3/
第一次AIブーム 推論・探索の時代(1950年代後半~1960年代)
第二次AIブーム 知識をいれると賢くなる(1980年代)
第三次AIブーム 機械学習・深層学習技術の発展(現在)
⇒機械学習とディープラーニング

■日本のAIサービス事業
AIサービスマップ
http://ainow.ai/2017aisummer/

■AI関連技術の4つの層
https://aizine.ai/ai-opensourse1009/

(1)AI (人工知能)アプリ/サービス
スマホあるいは家電製品で使用することができるサービス。
例)検索サービス、チャットボット、スマートスピーカーおよびSiriなど

(2)AI (人工知能)プラットフォーム
自然言語理解/画像認識/動画分析/音声認識/機械翻訳などのAI (人工知能)機能をWebブラウザ経由で提供するサービス(有料)
例)Google Cloud ML、Amazon ML、IBM Watson

(3)フレームワーク
AI (人工知能)アプリ/サービス開発時に使用する部品集
Python等のプログラミング言語によりフレームワークの各部品を呼び出すことにより効率良く開発することができる。
TensorFlow(Google)、Chainer(Preferred Networks)、Keras、Cognitive Toolkit(Microsoft)

(4)ハードウェア
GPU(Graphics Processing Unit)はCPUの約10倍以上の処理性能を持つ

■テンソルフローの環境構築について
https://www.slideshare.net/piacere_ex/ai1aitensorflow
① 各種OS用のpip(Pythonパッケージマネージャ)経由 でインストールする
② 【Windows、Mac】Anaconda(Python開発環境マネージャ)経由でインストールする
③ DockerからTensorFlowイメージをインスト―ル(pull) する

【機械学習入門】
■Chainerチュートリアルについて
https://tutorials.chainer.org/ja/index.html
⇒機械学習・ディープラーニングに入門できるサイト
 環境構築いらずでプログラム実行可能!
 ・Open in Colab から Google Colaboratory へ移動
 ・自分のドライブへノートブックをコピーする
 ・コードを実行しながら解説を読んでいく
 という流れ

※Google Colaboratory(Colab)
 クラウド上で Jupyter Notebook 環境を提供する Google のウェブサービス
 ・Markdown記法でメモや解説などの記述の追加
 ・プログラムを実行と、その結果の確認
 ・GPUも無料で使用することができる

■機械学習は3種類手法
 http://blog.brainpad.co.jp/entry/2017/02/24/121500
 
 〇教師あり学習 (supervised learning)
  正解のある訓練データ(Labeled Data)
  
 〇教師なし学習 (unsupervised learning)
  正解のないデータ
  クラスター分析、規則性や相関性、特徴を解析
   例)データマイニング
  
 〇強化学習 (reinforcement learning)
  試行錯誤を通じて「価値を最大化するような行動」
   例)AlphaGo

■教師あり学習
 回帰 (regression)
  例)値段を予測する
  
  https://tutorials.chainer.org/ja/src/07_Regression_Analysis_ja.html
  単回帰分析
   入力:出力=1:1
    例)部屋の広さ x から家賃 tを求める
   
  重回帰分析
   入力:出力=N:1
    例)部屋の広さを x1、駅からの距離を x2、…、犯罪発生率を x M から家賃 tを求める
   
 分類 (classification)
  例)画像、文字、音声認識
 
Step 1データの特徴や関係性を計算するモデルを決める
Step 2目的関数(モデルの最適なパラメータを求めるための関数)を決める
Step 3パラメータを最適化する

モデルのいろいろ
https://qiita.com/ishizakiiii/items/f6909696c616fd6294ca

■NumPy を用いた重回帰分析
https://tutorials.chainer.org/ja/src/08_Introduction_to_NumPy_ja.html
NumPyはPython で数値計算を高速に行うためのライブラリである
Google Colaboratory上のノートブックにはデフォルトでインストールされている

■scikit-learn を用いた重回帰分析
https://tutorials.chainer.org/ja/src/09_Introduction_to_Scikit-learn_ja.html
scikit-learn は Python のオープンソース機械学習ライブラリ
様々な機械学習の手法が統一的なインターフェースで利用できる

Step 1:データセットの準備
Step 2:モデルを決める
Step 3:目的関数を決める
Step 4:最適化手法を選択する
Step 5:モデルを訓練する
   ⇒新しい入力値に対する予測の計算(推論)

■ニューラルネットワークとは
https://tutorials.chainer.org/ja/src/13_Basics_of_Neural_Networks_ja.html
微分可能な変換を繋げて作られた計算グラフ
ニューラルネットワークの各層では、前の層の出力値に「線形変換」と「非線形変換」を順番に施している
⇒一つの大きな関数と考えられる
※ディープラーニング (deep learning) :
層の数が非常に多いニューラルネットワークをモデルにした機械学習の手法や、その周辺の研究領域のこと

ニューラルネットワークで表現されるような複雑な関数の場合、
繰り返し数値計算を行って目的関数の最適化する。
 例)勾配降下法、ミニバッチ学習:確率的勾配降下法(stocastic gradient descent; SGD)

■Chainer によるネットワークの訓練
https://tutorials.chainer.org/ja/src/14_Basics_of_Chainer_ja.html
Step 1 : データセットの準備
Step 2 : ネットワークを決める
Step 3 : 目的関数を決める
Step 4 : 最適化手法を選択する
Step 5 : ネットワークを訓練する

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2