はじめに
現在、大学3年でエンジニア就活をしています。プログラミング学習等の勉強の成果を何か言語化してアウトプットしたいなと考えたので、Qiitaで記事を投稿することにしました。
大学で配属された研究室では、機械学習、データサイエンスを主に取り扱っていて、その基礎知識についてインプットしているので、現在までの学習の成果をアウトプットできればと思います。また、間違ったこと言ってるかもしれないです。
データサイエンスとは??
- ビックデータなどを処理・分析して、そこから有用な情報・価値を引き出すアプローチのこと。
- → あるデータをもとに、何か世の中の課題を解決しようとする学問だと認識してます。
機械学習とは?? ん、人工知能?、深層学習?
- 人工知能>機械学習>深層学習
-
上の関係性のように人工知能のなかに機械学習という手法が存在し、さらに機械学習の中でも深層学習という手法が存在している。
- →僕のイメージでは、機械学習≒AIに学習させること。 同義と捉えても今のところ支障はない
機械学習アルゴリズムには、「教師あり学習」、「教師なし学習」、「強化学習」が存在する。
教師あり学習
- ラベル付けされたデータからの学習
- 入力と出力のペアを数多く与える
- y=f(x)におけるxとyのペアを与える
- fはモデルを指す
回帰
- 変わらない関数をデータから学習すること。
- 与えられたデータにはどんな関数がふさわしいのか予測する
モデル
- どんな関数関係にあるかという見当
誤差関数
- データとモデルの出力がどれだけずれているかを示す関数(ズレの指標)
- 小さくなることを目指す
- モデルとデータの差の2乗和を取ることが多い(正負を考慮しないため)
- 誤差を小さくすることを最適化(問題)という
汎化性能
- 一部のデータから全体を評価すること
- 汎化性能を良くするのが機械学習のコツ
バッチ学習
- バッチ=ひとまとめ、ひとくくり
- データを全部貰い受けてそれを訓練データにして学習する
オンライン学習
- 次から次へと来るデータを学習する
ボルツマン機械学習
- 隣同士の関係がどういう傾向にあるのか学ぶ
教師なし学習
- ラベル付けされていないデータからの学習
- y=f(x)のy(出力)が指定されていない
クラスタリング
- データの構造や特徴の類似性や傾向からグループ分けをすること
- 明確な答えはないけど、特徴や傾向を調べる際に使う。
教師あり学習と教師なし学習のイメージ
- 産まれたばかりの赤ちゃんは「🍎」を見て、赤くて丸いものと認識する(教師なし学習)
- その後成長していって、言葉を覚え始めてから「お母さんに『「🍎」はりんごだよ』と教えられる(教師あり学習)
強化学習
- 試行錯誤することによりデータを収集し、そこから学習 ← 人間は手を加えない
- xを与えたら帰ってくるyの値を学習、またxを与えたら、、、→だんだん賢くなる
- ブロック崩しゲーム
終わりに
インプットした知識を言語化すると、すごく頭の中で整理できている部分と腑に落ちない部分が明確になりました。
今後も学習成果をアウトプットする機会も増やしていきたいです。