見出し画像

ノンプログラマ&文系&python初学者の効果的なAI/機械学習の学び方

どーも。ぱいじーです。

今回は「ノンプログラマで文系のpython初学者の方がどうすれば効果的にAIや機械学習を学べるのか」について。2年程度で初心者が中級者手前くらいまで行くには、に絞って説明します。

偉そうに言ってますが私も始めてまだ2年。しかも、スタート当時50才という初老。全くの初心者でしかも脳細胞劣化速度が著しく速いジジイが「日経Tech 特別賞」を受賞するまでの実力には達したので偉そうにさせてくださいな。
※読了約5分

まず、初めにどんな人が読むと良いか、ぱいじーのスペック(どーせ最初からできたんでしょ、を払拭します)、私の考える習熟度=スキルレベルから。

0.ターゲット

こんな人が読むと参考になるかなー、と思います。
① コードを見たことはあるけど実装経験のないノンプログラマ
② pythonをやったことがない
③ 機械学習やAIに興味がある
④ 文系出身(理系の方もほか3点満たすなら)

0-1. ぱいじースキルセット

自分と近しい人はより参考になると思うので簡単なスペックだけ書いておきます。たぶん②③はいないと思いますけど。。。公平を期すため④⑤はスタートで有利な点もあげておきました。
① 0.ターゲット条件にすべて合致
② スタートが50才。劣化で記憶力が悪くなった。
③ 循環器系の大病を経験。血の巡りが悪く覚えが遅い・・
④ 職業柄データ分析はかなり得意(含む多変量解析)
⑤ なので線形代数や確率統計はそこそこできる
⑥ AIのスタートは画像処理系

0-2.習熟度=スキルレベル

あくまで私の考える習熟度です。これから述べる「スキルレベル区分でのロードマップ」を読むうえで参考程度にしてもらえると良いかと。

画像1


じゃ、準備が整ったので始めましょっか。。。。

1. 大切なこと

1.覚悟
いきなり覚悟?って思うかもですが、ホント大事。少なくとも簡単ではない、という理解は必要です。理系の方はマシですが文系の方は相当しんどいです。さらにwindowsだと、もう大変。環境構築にすごく時間がかかる(私は文系&ノンPrg&winです、大泣)。ビビる必要はないけどそれなりに覚悟はしたほうが良い。

2.ゴールの設定
やはり明確なゴールを持ってる方は習熟度が速い。将来のスキルで必要だからなー、AIに仕事奪われるしやっておこうかなぁでも構わないですが、もう少し明確にゴールレベルを上げて設定したほうがいいです。

3.質問できる人がいる
これ、すごく大事!必ずスタックしますし、簡単に解決しません。保証します笑。近くに質問できる人がいると断然有利です。特にスタート直後は用意してください。そんな人いないよー、と言う方のほうが多いと思います。私もそうでした。だからスクールに行くんです。あるいは「teratail」というQAサイトを利用するという手もあります(teratailにはお作法があります。上から目線ヤローもいますが多くの人は優しく教えてくれます!)。

4.スクールの利用
いま書きましたけど、スタート直後はスクールを選んで「質問できる人」を確保してください。高いから躊躇するでしょうが十分価値はあります!
(スクール選びはカリキュラムや価格も重要なので後段で触れますね)
強調しますが「バンバン質問できる人」は本当に大切です。事前に講師の経歴がわかるとなお良しです。私は筑波大でコンピュータサイエンスの修士を取得し、マイクロソフトの職歴もある方にお願いしました(この人じゃなきゃおたくのスクールは選びません、って言いました笑)。

5.ロードマップ
基本的に独学かそれに近いスタイルになると思うので習熟度(スキルレベル)に応じて適切な「書籍」を選んでください。私がスタートしたときは良書が少なく苦労しましたが、最近は良い本がたくさん出ています。私なりの「レベル別ロードマップ」をぜひ参考にしてください。

6.時間や環境
時間はかなり重要なファクターです。
勉強もそうですが、機械学習やAIはそれこそ「学習(分類やら予測やらのために訓練データをゴリゴリ回すこと)」に時間がかかります。PCスペックによりますが、私のGPUマシンでもデータセットやアルゴリズム次第では1回2時間以上かかります。皆さんも1回数十分程度かかるケースにすぐ出会うと思います。
環境も大切です。
私は優しい奥様の理解を得ています。大きな顔でゴリゴリできています(感謝です)。自宅、職場、サードプレイス(スタバとか)など勉強環境の整備に努力してください。

7.その他
ロードマップに載せてないんですが「Kaggle」という素晴らしい機械学習/AIのサイトがあります。意外にケースとかデータセットを探すのって大変なんです。ここはゴロゴロ転がっています。
また、先輩諸氏のコードもふんだんにありますから大変勉強になります。習熟度1~2あたりになったら、ぜひ挑戦してみてください。
もくもく系とか無料の勉強会にも顔を出したほうがいいです。自分のレベルもわかりますし、仲間もできます。運が良ければ「質問できる人」にも出会えます。

2.ゴール

中でも大事だと思っているのが「ゴール設定とロードマップ」です。少し詳しく書きます。

まずはゴール設定。
上に書いた通り人ぞれぞれだと思うのですが、明確なゴールを持っている方がベターなのは間違いないです。なぜなら「続く」から。結局、継続は力なんです。すぐ諦めず続けられる人って、ちゃんとゴールを設定しているんですよ。そんで、続いている人って大体この2パターン。

①AIや機械学習で作るべき(作りたい)ものがある
②ある程度タイミングを決めてキャリアアップやキャリアチェンジを考えている

私は①です。
会社の「パッケージデザインのデータベース」を活用してAIでも作るか、でも予算ないしなー、外注できひんしなー、じゃ自分で作るぜ、みたいな感じで始めました(スクール欄の「家庭教師」はこれを作るためのものなので参考にしないでOK)。
いざ、やってみるとかなり高い精度が出たので、これ売れるかも、みたいな感じで、より一層ストイックになりましたね(メチャクチャ大変ですが)。私の知人の多くがそう言いますね。①の人ってやっぱり続きます。
②もスクールのとき結構いましたね。。1年半くらい前ですから、今はもっといるんじゃないですか。

2. 2年間のロードマップ

次に「ロードマップ」を。

画像2

エクセルですいません。
デザイナーさんみたいにキレイではないですが内容はわかるかと。
上から
「スキルレベル」「書籍」「スクール」です。pythonで機械学習・AIの腕をあげるにはスキルレベルに応じたこの2本が柱になります。
書籍はそれぞれ「python」「機械学習・AI」「数学」に区分しておきました。

3.書籍紹介

3-1.スキルレベル0

①「詳細!Python 3 入門ノート」

まったくの初心者なわけですから当然「入門書」から入ります。なぜこの書籍かと言うと、スクール指定だったから、です。正直なところ、クオリティはなかなかですが今ならもっと良いのがありそう。。。入門書はよほど下手なものを買わない限り、そんなにクオリティは変わらない(はず)。
※私はkindleに慣れてないので書籍版で買いました。

画像3


3-2.スキルレベル1(前半)

②「pythonではじめる機械学習」

入門だとちょっとレベルが高いかも、だけど、すごく良書です。
他にも「機械学習図鑑とか「機械学習のエッセンス」、「[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践」とか「tensorflowではじめるdeeplearning実装入門」などなど何冊かやったけど、やっぱりこの本はわかりやすかったですね。
私は多変量解析をやっていたので入りやすかったですが、解析系はサッパリと言う方は「機械学習図鑑」と「機械学習のエッセンス」がわかりやすくてオススメです。特に、図鑑は名前の通り図が多くて見やすいので良いですよ。だけど、後ろの2冊は買っちゃダメ!今はほぼ使わない「sess-run」方式だから。
(ありゃ、上と画像サイズが全然違いますね。まあ、スルーしてください)

画像4


③「ゼロから作るdeep learning」

これも入門だとちょっとレベルが高いんですが、ニューラルネットワークの仕組みを理解するには最適な書籍です。AIを目指すなら必読です。この時点では、コードは難解なのでskipして良いと思います。余裕があれば程度で。とにかく仕組みの理解にフォーカスしてください。3割分かれば上等(やってるうちにレベルが上がり書籍も多く読むことになるので徐々に理解できていきます)。
あと「なぜディープだと表現力=精度が上がるのか」はこのyoutubeが分かりやすいのでオススメです。合わせて勉強すると理解度が増します。

画像5


3-3.レベル1(後半)

④「統計学入門」

統計学の基礎がまったくない(ゼロ)とキツイかもしれませんが、練習問題が多くてどんなときに統計学を使うのか、がよくわかります。たくさん分布が出てきますので、まったく統計知識ゼロと言う方は坂田アキラシリーズの「確率」を読んだ方が良いと思います。

画像6


⑤坂田アキラ「数Ⅱ」「数Ⅲ」の微分積分

微積を既に理解している方はskipしても良いと思います。昔のことだし忘れたなぁ、あまり理解していない、復習がてらに良いかな、と言う方にはオススメです。
数Ⅱ、数Ⅲで2冊あります。時間ねーから絞って、と言うなら「微分」にフォーカスしてください。積分は統計分布で使いますが機械学習やAIには「あまり」登場しません(活性化関数とか損失関数とかは統計が絡みますが、ここでスルーしてもまあAPIだし何とかなります)。
私の高校時代は数Ⅱ・数Ⅲではなく「線形代数/確率統計/微分積分」と言う区分だったんで文系コースは微積を全くやらなかった、涙。もう、③を読んでもチンプンカンプンで。。。しょうがないので結構時間をかけてこのタイミングでやりこみました!
この本は④「統計学入門」と同じでとにかく練習問題が多い。かつ説明がわかりやすいのが特徴です。特にディープに出てくる「合成関数」や「偏微分」は数Ⅲでガッツリ説明してくれていますし「微分=変化率」の意味は数Ⅱで十分理解できます。
※他にも「線形代数」とか苦手な方は坂田アキラシリーズがオススメです。とにかくわかりやい!受験生にとても人気があるのもうなずけます。

画像7


3-4.レベル2

⑤「ゼロから作るDeep Learning② ―自然言語処理編」

AIは大別すると「画像処理系」「自然言語処理系(コンピュータ言語に対して通常の私たちが使っている言語を自然言語と言います)」「その他系(音楽、映像etc)」に分かれます。
私はパッケージデザインのAIなので「画像処理系」から入りましたが、人によっては「自然言語処理系」から入る方もいると思いますので、その場合は③とこちらを逆にしてください。③の著者が書いてますから、大変分かりやすいです。
自然言語処理のAIはRNN(リカレントニューラルネットワーク)という手法を使うことが多いのですが、ちょっと難解なのでざっと読むくらいで良いと思います。この時点なら単語の分かち書きレベルだけで十分かと。

画像8


3-5.レベル3

⑦「python実践データ分析100本ノック」

レベル3くらになるとpandas、numpy、matplolibの基本レベルは到達していると思います。
なので、このタイミングで大切なのは現実のデータ分析を知ることです。勉強でやっているような書籍やスクールが用意したキレイなデータセットは現実的にまずありません。
この本は、そうしたデータの前処理(加工やクレンジングなんかも同じ)も含めてとても参考になります。私は自然言語処理で大変お世話になりました。(ありがとうございました)

画像9


⑧「東京大学のデータサイエンティスト育成講座」

レベル3にピッタリです。本当に良書です。
説明の分かりやすさ、コードの可読性、練習問題の質と量、appendixの多さと深さ、どの角度から見ても、このタイミングで読むベストな書籍だと思います。特に機械学習ではこんなテクニックがあるんだ、的なものがたくさん出てきますので、ぜひ参考にして欲しい逸品です!

画像10


3-6.レベル4

⑨「15Stepで踏破 自然言語処理アプリケーション開発入門」

いよいよ、初学者最高レベル4です。
先述しましたが、自然言語処理系から入る方は⑤で仕組みを理解してからこの書籍に入っても良いと思います。実践的な処理コードを丁寧に説明してくれています。
特に分かち書きのコードパターンや辞書種類の特徴の整理などは大変参考になります。その分、RNNは手薄ですがレベル4なら十分だと思います。

画像11


⑩「文系プログラマーのためのPythonで学び直す高校数学」

まさに私にピッタリの書籍です。
数式が少ないのでレベル1あたりでも良いと思うのですが、レベル4で読むと理解度が格段に違います。へー、GRAD-CAM(画像処理系AIのテクニックで誤差で重みを微分したときの変化率を図示化したもの)って、そういう意味なんだ-、みたいな感じで。腹落ちが全然違います。

画像12


⑪「最短コースでわかる ディープラーニングの数学」

これは思いっきり数式が出てきますので⑩より、かなり難易度高めです。でも、レベル4まで到達していれば十分に理解できます。特に、バックプロパゲーション(誤差逆伝播法)をオール数式で説明してくれているのはありがたい。ロジックがわかります。
最近、話題になりましたが「中学生がこれだけで完全理解する機械学習【毎日アップデート中】」にも出てくる「courseraの機械学習講座(Stanford)」で解説している仕組みが大変理解できるようになります。

画像13


4.スクール

最後にスクールについて。
個別については控えますが、どんなタイプの方がどんなスクールを選べばよいか、はまとめておきます。

4-1.スタイル
通学タイプかオンラインタイプか、を決めてください。物理的な制限でオンラインしかない、ってのもありますが。。
直接対面で教えてもらった方が理解できるしモチベーションもキープできると言う方は通学タイプ、通学は面倒だし会わなくてもオンラインで質問できればOK、と言う方は後者タイプです。私はオンラインでした。
比較可能な恵まれた方はしっかり検討してください。

4-2.カリキュラム
アウトプット中心のカリキュラムがオススメです。
書籍をなぞるコースは避けてください。結局、自分でコーディングしないと身に付きませんから。
私は入門書読了前提でいきなり課題解決から入りました。とても大変でしたが、頭を使い、自分の手を動かすことが理解向上に大切。今でも同じ。ホントしみじみ感じます。

4-3.予算
皆さんの懐具合によるでしょうが、正直あまりにも高いスクールはやめた方がいいです。私は「1ヵ月10万円、max 2ヵ月20万円」を目安に探しました。

※この記事を書くのにスクールをググりましたが、いま6カ月100万円ってあるんですね。ビックリです!(さすがにアカンやろー)
初心者がいきなり高額を張っちゃダメ!

冒頭で話しましたが、私がスクールを推奨する理由は「質問できる人」がいるからです。特にスタート直後は何をやっても霧の中ですから水先案内人は必要です。とは言え、お金は大切。だからキッチリ予算と期限を決めるようにしてください。
1日5個くらい質問してください。お金は時間ベースで質問ベースじゃないですから聞いた方が得です!もちろん、自分で試行錯誤したうえで、が前提ですけど。。
そのうえで「ググっください」と答える講師がいたらクレームを入れて改善しましょう!場合によっては講師変更も視野に入れて事務局と交渉するのも手です。自分の人生。いつでも、より良い環境を!

4-4.スクールのステップ

最初はpython入門コースから始めて、次に機械学習コース、に行くような流れがベターです。一緒に教えてくれるスクールがベストですけど。。。あるのかな-。
入門編が1ヵ月、機械学習編が1ヵ月(私は2ヵ月12万円という素晴らしいスクールを選びました)というのが目安ですかね。もう少しお金が出せるなら入門編2ヵ月ならより良いかも。でも、ダラダラやるのはオススメしません。最長で入門編と機械学習編合わせて3か月くらいにしてください。飽きるし、まあ集中力が続きませんよ。お金の限度もあるし。。上限30万円くらいで探してみてください。

私なりに
「ノンプログラマで文系のpython初学者の方がどうすれば効果的にAIや機械学習を学べるのか」
についてまとめてみました。
効果の定義もしていませんし、もちろん、皆がみんなうまく行く保証もありません。
それでも、ほんのわずかでもお役に立てたなら嬉しいかな。

長文すいません。

お読みいただきありがとうございました。

chao!

この記事が気に入ったらサポートをしてみませんか?