CS_INDUSTRIAL

AR/VRエンジニアの趣味ブログ

人工知能についてのメモ①「基礎知識の確認」

ほぼ個人メモなので雑です。理解していくために書き殴ります。
人工知能などに関しての技術進歩が速いので今のうちに基礎を理解しておかないとチンプンカンプンになると思ったのではじめました。(使用だけだと簡易ライブラリなどは出てきていますが...原理的な部分)
定期で何かわかったことがあれば追記したりします。
解釈の違いなど当然あると思いますのでご指摘いただけると嬉しいです。

そもそも人工知能(AI)とは

膨大なデータを元に分析して分析・判断し、検出・抽出を行う機能、仕組み。
今回のような分析・判断するAIを強いAIと呼び、
プログラムで書かれたような知能の低いAIのことを弱いAIと呼ぶそうです。

よく出てくる単語

  • アルゴリズム
    • 学習したデータから検出・抽出する方法のこと。
  • データ
    • 主に学習の材料になるデータのこと。
      画像解析なら同じ対象が映った複数画像の集合や、Excelのような表など。
  • 入力
    • 機械学習のプログラムに対してデータを入力すること。
  • 出力
    • 入力から機械学習のプログラムが導き出した答えのこと。
  • ラベル
    • 入力とそれに対応すべき出力を人間が例として示した見本のこと
  • データマイニング
    • 様々なデータ解析の技法を大量のデータに網羅的に適用することで知識を取り出す技術のこと。
      通常では想像が及びにくい、発見ができる可能が多い。

人工知能を実現する方法

  • 機械学習
    機械学習を一言で表すと「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野」
    • 教師あり学習(Supervised Learning)
      • 入力と出力の関係を学習する方法。
        ラベルを提示することでそこから解釈されるアルゴリズムを生成する。
    • 教師なし学習(Unsupervised Learning)
    • 強化学習(Reinforcement Learning
      • 価値・評価を最大化するような行動を学習する方法。
        人間が与えた環境を観測し、どう行動すべきかを学習する。行動によって環境に影響が出て、環境から報酬という形でフィードバックを得ることで学習アルゴリズムのガイドとする。
        例として「将棋をして、より勝率の高い戦略を学習させる」などという方が個人的にはわかりやすい。
  • 深層学習(ディープラーニング
    ディープラーニング機械学習をさらに発展させたもの。主にデータを分析する際に使う枠組みが異なっていて、人間の神経を真似て作った「ニューラルネットワーク」で、コンピューターによるデータの分析と学習を強化している。
    機械学習ではデータに対して「入力と出力の関係」や「データの構造」「価値・評価を最大化する」など重点を人間が用意したのに対し、その部分もディープラーニングに学習させ判断させようとしているらしい....。(相手が何を求めているかを考えることでより人間に近くなっている!)

人工知能を作るにあたって選べる言語

  1. Python
  2. Java
  3. R
  4. C++
  5. C
  6. JavaScript
  7. Scala
  8. Julia

個人的にはJava,Js,C++あたりがうれしいのですが、一般的にはPythonが多く、記事も多いのでまずはPythonではじめるのが無難な感じでした。

人工知能についてのメモ②ではPythonの環境を整えます。