Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

機械学習を1ヵ月で実践レベルにする #1 (とっかかり編)

More than 3 years have passed since last update.

はじめに

会社から1ヵ月の自由研究期間を頂いたので、かねてより興味のあった機械学習の勉強を始めました。せっかくなので学習の記録をつけていこうと思います。1日目の今日は、機械学習を学ぶ上での文献や、学び方へのまとまりのないリファレンスとなりました。

過去記事一覧

ゴール設定

1ヵ月後のゴールを以下のように定めました。

  1. 新たな課題に対して機械学習的アプローチで解決策を提案できるようになる。
  2. 人が手でやっていた作業をコンピュータ作業に置き換える提案ができるようになる。
  3. 提案したものを実践する、または実践できるプロジェクトをおこす。
  4. 実際にある課題のうち簡単なものを解決し、自由研究の成果とする。

事前準備

まず、この短い1ヵ月を有意義に過ごすために、自由研究期間にはいる前から、助走代わりにいくつか書籍を用意しておきました。

買っておいた本(読んでない)

買って、読んだ本

  • 戦略的データサイエンス入門
    • データサイエンスとはなにか
    • なにができてなにができないのか
    • データサイエンスの有用性
    • 最初に読んでおくと、勉強前のテンションがあがります!
    • (これ読んでテンションあがらなければ向いていないです。)
    • それを判定する意味でも読んでおくといいです。
  • 集合知プログラミング
    • 読んだのはもう8年も前なので復習したいです。
    • 当時はこれを読むためにPython を始めたくらいです。
    • 今回は目次だけ一通り再確認しました。
  • ITエンジニアのための機械学習理論入門
    • タイトルまま。機械学習の理論を広く浅く学べました。
    • 読書メモがそのままこれからの学習のリンクリストになりました。
    • ツールもたくさん紹介されているので、実践もしやすいです。
    • この記事の付録として読書メモを最後にまとめておきます。

いよいよ自由研究スタート

そして、1日目に当たる今日は、どういう筋道で学習していくかを決めるため、さらにランダムにいろいろなサイト、スライドを見まくりました。

見たスライド

見たサイト

Stanford University の機械学習オンライン講座

Machine Learning - Stanford University | Coursera

WEEK 1 を終えました

  • 機械学習分野はとにかく需要がある!
  • 機械学習は大きく分けて「教師あり学習と教師なし学習」にわけられる
    • (僕が興味あるのは、とりあえず教師あり学習のほう)
  • 教師あり学習とはつまり正しい答えが与えれているもの。
  • 特徴のリストは無限の長さにもなり得るがそれに対応できるアルゴリズムがある。
  • 回帰問題 => 連続値出力の予測
  • 分類問題 => 離散値出力の予測
  • 機械学習を学ぶときに使う言語はOctave 一択!
    • 過去の実績でOctave を使うと、機械学習の習得が最速
    • Python よりも。
    • Python いろいろ準備しようとしてたのに...
  • WEEK 1 を終えての感想
    • 1WEEK あたり3時間くらい。
    • スケジュール通りやると3月くらいまでかかる
    • がんばれば午前に1WEEK、午後にもう1WEEK進められそう
    • 内容は「IT エンジニアのための機械学習理論入門」と似ている
    • ただ、よりゆっくりかつ詳しく説明してくれるので理解しやすい

明日からはこちらの、Stanford の機械学習講座をやります。WEEK 11 まであるようで、午前と午後にひとつずつやっても1週間で終わるので、クリスマス前にはこの講座を終了して肌感をつかみたいと思います。

それから、手を動かそうとしたときに本質的でないところでつまづいたり時間をとられたりして、コンテキストスイッチされても嫌なので、Python における機械学習環境を見直して、最強の環境も明日作ります。と思っていたのですが、Octave の環境も作っておかないとですね。

明日やること

付録

機械学習理論入門読書メモ

概要

IT エンジニアのための機械学習理論入門
技術評論社
中井悦司

機械学習アルゴリズムの分類

  • 分類:クラス判定を生み出すアルゴリズム
  • 回帰分析:数値を予測するアルゴリズム
  • クラスタリング:教師なしのグループ化を行うアルゴリズム
  • その他(扱わない)
    • 類似マッチング
    • 共起分析
    • リンク予測

復習用語

  • 最小二乗法
    • トレーニングセット、特徴変数、目的変数
    • 多項式近似、誤差関数
    • オーバーフィッティング問題
  • 最尤推定法
    • データ発生確率の設定
    • パラメータ評価(確率を最大化するパラメータ)
    • 推定量の評価(一致正と普遍性)
  • パーセプトロン
    • 平面を分割する直線の方程式
    • 誤差関数による分類結果の評価
    • 確率的勾配降下法 -> 勾配ベクトルによるパラメータの修正
    • 幾何学的な解釈
      • バイアス項の任意性とアルゴリズムの収束速度
      • 幾何学的解釈 / バイアス項の幾何学的な意味
  • ロジスティック回帰
    • データ発生確率の定義
    • 最尤推定法によるパラメータの決定
  • ROC曲線
    • ロジスティック回帰の現実問題への適用
    • ROC曲線による性能評価
    • IRLS法
  • k平均法(means?)
    • 教師なし学習モデルの基礎
  • EMアルゴリズム
    • 最尤推定法による教師なし学習モデル
    • ベルヌイ分布
    • ベルヌイ混合分布
    • EMアルゴリズムによるクラスタリング
  • ベイズ推定
    • ベイズの定理
    • ベイズ推定の回帰分析への応用

復習分析ツール

さらなる参考書籍

junichiro
Raksul のサービス開発エンジニアです。仕事ではまだ機械学習を使うところまではいっていませんが、いずれやりたいと考えています。Perl のキャリアが最も長く、最近は Python が多く、これから Ruby をやります。その他、Java, Javascript, PHP, R, Octave
https://newspicks.com/user/405272
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away