AIと機械学習とPython

AI・機械学習初心者が4ヶ月勉強して覚えた用語をまとめた-最初につまずく用語中心

投稿日:2020年3月21日 更新日:

2019年12月からAI・機械学習の勉強を始めて、覚えた用語などをまとめてみました。

機械学習初心者は、その見慣れない用語に驚き、やっぱり難しいと勉強を辞めてしまうことが多いと思う。私も一時期挫折した。私自身の経験を踏まえて、この記事に書いてある用語をある程度頭に入れておけば挫折の可能性を低くすることが出来ると思う。そして、初心者でもここまでわかるようになるんだということを伝えたい。

 

分かりづらい専門用語や数式は使っていません。初心者がイメージをつかみやすいように記事を書きました。是非活用してください。

 

勉強を始めたころは初めて見る用語が多く、勉強が思うように進まなかった。けれど、今ではPythonを使って、文章生成や画像生成ができるようになりました。
コウメ太夫をAI化してみた - 初心者が学ぶ機械学習と文章自動生成
初心者がPythonと機械学習を使ってコウメ太夫さんをWord Cloudで表現してみた

 

注意ポイント

この記事に書いてある解説はなるべく初心者にわかりやすくよう、簡潔にまとめてあります。そのため専門家から見ると少し異なる部分があるかもしれないが、ご了承願いたい。



ここに出てくる多くの用語は以下を活用して学びました。

おすすめの書籍や教材

 

一般用語

Python

機械学習の分野でよく使われるプログラミング言語。面白いところではYouTubeとかもPythonで作られているらしい。Pythonは機械学習や計算用のライブラリが豊富なため、機械学習の現場でよく使われる。ライブラリをどう上手く使うかがポイント。

 

ライブラリ

ある処理を行うための関数(事前に定義された処理、プログラム)をまとめたもの。

 

機械学習

機械(プログラム)に人間と同じような処理をさせるために考えられた手法。
機械(プログラム)に繰り返し学習をさせて、特徴(パラメータ)を覚えさせて人間と同じ判断が出来るようにすることが目的。

 

人工知能

人間と同じような判断、生成ができるように組んだプログラムやシステムのこと。

 

ディープラーニング(深層学習)

人工知能>機械学習>ディープラーニング(ディープラーニング)の関係
機械学習の中でも、NNの隠れ層が多いものを特にディープラーニングという。

NN(ニューラルネットワーク)

人間の脳と同じ働き、ニューロンの動きを再現させるという考え方。機械学習の考え方の1つで、現在の機械学習分野の主流的考え方。

 

CNN(畳み込みニューラルネットワーク)

機械学習の考え方の1つ。重みつけを利用することが特徴。
Convolutional Neural Networkという英語。

 

RNN(リカレントニューラルネットワーク)

一つ前のデータを覚えておき、次のデータに影響を与えるニューラルネットワーク(NN)のこと。再起、再発という意味のRecurrent。

 

Kaggle

機械学習の精度などを図るコンペ、サイトのこと。機械学習の競技みたいな感じ。

 

MNIST

機械学習を始めたころによく見る手書き文字の画像のこと。
“MNIST“で画像検索するとよく分かると思う。

 

CIFAR10

10種類のジャンル、本物の大量画像データを集めたものサイト。

 

LSTM(長短記憶)

Long Short-term memory。
前のデータを覚えておいて、重みづけをして、次のデータに影響を与えるという考え方、仕組み。

 

ライブラリ

Matplotlib

描画用のライブラリ。よく使う。

 

Numpy

数学計算用のライブラリ。よく使う。

 

Pands

配列を扱うライブラリ。よく使う。

 

TensorFlow

機械学習のデファクトスタンダードになっているライブラリ。Googleが作っている。TensorFlowの中に、Kerasが含有されている場合は、tf.kerasで呼び出すことができる。

 

Keras

TensorFlowというライブラリを扱いやすくするためにより簡易にしたフロントエンドライブラリ。Kerasを使ってTensorFlowを簡単に扱える。

TensorFlow単独だと、記述が難しいことがあるが、Kerasを使うとより簡単にプログラムを記述できるらしい。Keras単独でライブラリとして使うこともできる。が今はほとんどTensorFlowとKerasはセットになっている。

 

word2vec

文字データを数値に変換するライブラリ。Word to Vector(単語を数値へ)という意味。

 

GAN(Generative Adversarial Networks)

敵対的生成ネットワーク。画像生成で使われる手法。機械学習(AI)に画像を作らせることができる。Generator(画像を生成する生成器)とDiscriminator(画像が本物か正しいか判断する判別器)がある。

Generatorが作ったニセ画像が、Discriminatorをだませたら(間違えて本物と判断する確率が上がったら)学習が終わるという仕組み。

 

DCGAN(Deep Convolutional GAN)

これも敵対的生成ネットワーク。機械学習(AI)に画像を作らせることができる。GANの中でも生成の途中でCNNを使っている場合はDCGANと呼ばれる。

 

活性化関数

機械学習に使用されるパラメータ。学習した結果を最後にどうやって出力させるか調整するパラメータ

 

シグモイド関数

活性化関数の1つ。0か1を出力するという特徴を持つため、画像判定に使用される。例えば、犬か犬じゃないかの値について0か1で判定をするといった場合に使用される。犬なら1、犬じゃないなら0みたいな感じ。

 

ソフトマックス関数

確率で表す活性化関数。犬の確率は、63.4%、猫の確率は36.6%みたいな結論を出したいときに使われる。

 

ハイパーパラメータ

ざっくり言うと機械学習で設定されるすべての値のこと。活性化関数や、損失関数などもここに含まれる。

 

勾配(こうばい)

機械学習はこの勾配の値を最適化することを行っている。

 

Tanh(ハイパボリックタンジェント)

機械学習に使用されるパラメータ。時系列データに関して、学習の途中データを次にどうやって渡すか(どの程度影響させるか)調整するパラメータ。-1から1の間を出力する。

 

損失関数

学習の結果が答えに近いか、近くないかという点を判断するためのパラメータ。

 

分類

機械学習の手法の1つ。あるデータを分類する。犬の画像と猫の画像の二つなら二項分類。それ以上なら多項分類。データに答えが付いている教師データの場合は分類。

 

回帰

いわゆるグラフを意味する。線形回帰で株価を予測するなど。

 

クラスタ

教師なしで画像データを分類する際に使われる。

 

トレーニングデータ・学習データ

機械学習する際に使用する学習するためのデータ。インプットデータ。

 

教師あり学習

学習データに答えが付いていると、教師あり学習。

学習時間が短いが、データを集めるのに時間がかかる。

 

教師なし学習

学習データに答えのラベルが付いていないと教師なし学習。

学習時間が長いが、データを集めるのに時間がかからない。

 

半教師あり学習

学習データの半分にラベルが付いていると、半教師あり学習と言われる。

 

テストデータ・評価データ

集めたデータをすべて学習のために使用すると、テストができない(評価)できないので、普通は、集めたデータをトレーニングデータとテストデータに分割する。作ったモデルが使えるのか、使えないのか判断するために使用するデータ。

 

モデル

機械学習の結果、調整、作成されたハイパーパラメータのまとまり。

 

過学習

パラメータがテストデータに調整(最適化)されすぎて、ほかのデータでは、例えば、分類の精度が悪くなってしまった機械学習のパラメータや結果のこと。集めたデータをすべてトレーニングデータに使ってしまうと発生する。

 

時系列データ

文章、株価など、1つ前のデータ(t-1と表現される)が次のデータ(tと表現される)にとって意味があるデータのこと。「私は男です。」の場合、“私”と“男”は関連、意味ある関係となる。また、株価は前日の価格が翌日の値に影響するため、こういう場合も時系列データになる。

 

文章生成

機械学習を使って、文章を生成すること。「私は男です。」の場合、“私は”の次に来る単語を確率で予測、もしくは「私はxxxです」のように、前後の単語の関係性から、単語を予測する方法がある。

 

青空文庫

著作権が切れた本のデータのこと。夏目漱石とか、宮沢賢治とか。多くは、文章生成のためのトレーニングデータとして扱われる。

 

形態素解析

文章を主語、述語、名詞などの品詞に分けること。品詞(単語)に分けることで分析、学習がしやすくなる。

 

Mecab

形態素解析のためのツール。日本製。

 

Janome

形態素解析のためのツール。日本製。

 

ベクトル化

なんらかのデータを数値化すること。例えば、文章や単語を数値化してデータとして扱いやすくする際によく使われる。数値にすると並べ替えたり、配列に入れたり出来るようになる。

 

感情分析

文章に出てくる単語を数値化した後、その文字が持つ感情(正か負の感情)を表現すること。例えば、映画のレビューの文章を読み込んで、そのレビューが正か負か判断するといったことが出来る。

 

テスト手法

少ないテストデータを一回の学習で使ってしまうともったいないので、うまくテストデータを分割して使うための多くの方法が考えられている。

 

k–分割交差検証(Cross validation)

テストデータを何分割(K分割)して、トレーニングデータとする方法。1分割目~K分割目を一つのかたまり(バッチ)としてステップを回していく。

ホールドアウト法

集めたデータ全体をn:nで分割する方法。例えば、トレーニングデータを7割、テストデータを3割とするなど。分かりやすい。

 

更新履歴

まだまだ追記していきます!

  • 2020年3月21日 新規作成

おすすめ記事

1

敬愛してやまない大芸人であるコウメ太夫様が毎日実施されているツイート(#まいにちチクショー)を元に、機械学習初心者がPythonのプログラミングでデータ収集と学習を行い、コウメ太夫様っぽい文章を自動生 ...

2

正直私も最初はUdemyなんて聞いたことないし怪しいなと思いました。でも、今では実際に25講座ほど購入済みです。そんな私がUdemyの評判やお得な講座購入方法について書いていきます。   目次 Ude ...

3

先日AWSソリューションアーキテクトアソシエイト(AWS SAA)に一発で合格しました。スコアは800点台の後半でした。 世の中にはたくさんAWS SAAの合格体験記がありますが、私もこのサイトに合格 ...

4

この記事は、技術系ブログ運営の実情と運営するメリットについて詳しく書いていく。これから技術系ブログを始めたいと思っている人は、よく読んで参考にしていってください。そして、この記事を参考に技術系ブログを ...

-AIと機械学習とPython

Copyright© CLOUD IT FUTURE , 2020 All Rights Reserved.