湯豆腐

個人用の落書きです

機械学習の学習 [ML:0日目]

転職が決まり、有給消化期間になったので、 今まで勉強する暇が無かった機械学習などの勉強を始めたいと思います。

現状の知識レベル的には下記のような感じ

  • 文系出身・・・数学とかは大学でほとんど使ってない
  • 基本的な用語に関しては知っている(≠理解している)・・・標準偏差正規分布過学習、各アルゴリズムの名前、etc
  • マーケター→エンジニアへ転向して半年くらい。独学でPython、仕事ではRubyをやっていた

自分用のアウトプット先として記事を投稿していくつもりですが、 同じぐらいのレベル感の人にも参考になればと思います。

方向性

  • scikit-learn
  • chainer

の理解を深めながら、機械学習自体の理解を深めていきます。

正攻法的には基礎数学からやった方が捗ると思いますが、 あくまで"ライブラリを使えるようになること"に焦点をあてて勉強していきます。

理由としては、例えば標準偏差は数式で書くとこうなりますが

  {\sqrt{
    {\frac{1}{n}}} {\sum_{n=i}^{n} (x_i - {\bar{x}})}
  }

数学に馴染みのないエンジニアとしては下記の方が圧倒的にわかりやすいですね

import math

def sd(array):
    mean = sum(array) / len(array)
    tmp = sum([(i - mean)**2 for i in array])
    var = tmp / len(array)
    sd = math.sqrt(var)
    return sd

最初にプログラミングを勉強し始めるときも、理論からガチガチにやっていくより
まずはコピペで動くものから、少しずつ理解を広めて行く方が多くの人にとって理解しやすいのではないかと思ってます。

ゴール

まだ深く考えていないので、今のところ決まったゴールはなし・・・
やりながら考えていこうと思いますが、今のところは

  • Chainerかscikit-learnで独自課題に挑戦
  • Kaggleでコンペに挑戦する

みたいな感じになるのかな。
とりあえずがんばろう