見出し画像

Pythonでの機械学習を勉強したいからまずはPythonの入門書を読んだというお話


人の勧めって結構大きい

 まず初めになぜ機械学習に興味をもったのか話しますね。
結論をいうと、(親が働いている)会社の方々に勧められたからが理由です。
(軽!っ)
でも勧められただけでは普通勉強しようとは思いませんよね。(笑)
少しでも興味が湧いたものはかじってみるという自分の性格に動かされ、
「まあやってみるか」と興味を持った感じです。
(これを興味と言って良いのかわからんが 汗)

 といっても専門的な書籍を使用した勉強は今のところ考えておらず、入門 + 機械学習の全体像 を勉強できればなーと思ってます。

安心して勉強できる環境にいる

 「会社の方々に勧められた」と先ほど言いましたが、そもそもどんな方々なのか? 気になりません?
実はすごい人達の集まりです。はっきりいうと本来僕のような無知の人間が会話してはいけないような人たちです。
もちろん名前や会社名は言えません。が、一人だけ紹介させてもらうと、
「大学の学部卒業後、シリコンバレーに一年ほど留学。帰国後、東京大学大学院で機械学習技術の応用研究を行い博士号を取得」という経歴です。
 ね? 語彙力失っちゃいますよね(笑) (他の方々もすごいです)
で、この方の経歴をよく見ると機械学習技術の応用研究を行っていたと書いてあるので、つまり機械学習のプロといえるでしょう。

 ・機械学習の深くまでは勉強するつもりはない
 ・困ったらプロに質問できる

以上のことを踏まえると、僕は今機械学習を勉強する絶好の機会にいるわけです。

勉強前のスペック

 入門書を読み終わる前のスペックとしては以下のような感じです。
実は1年生のとき、少ない専門科目の一つにプログラミング基礎という科目がありました。
授業の中で使用した言語はPythonで、すでに触れたことはある言語でしたが、そもそも授業の内容・目的が「Pythonではどんなことができるのか」を体験することでした。
つまり、Pythonの文法を覚えることが目的の授業ではなかったので、「コードを見ればだいたい何をしているのかわかる」程度の文法知識のみの状態でした。
 もちろん文法のみに限らず、そもそもPythonとはどんな言語かさえ自身を持って説明できない状態でした。(何に特化しているのか など)
 こんな状態ではPythonを使った機械学習に門前払いされてしまいます。
ですので、まずはPythonのコードの書き方や、なぜPythonが機械学習に使われるのかを勉強することにしました。

Pythonの入門書を読み終わって

 本を開いてから5日ほどで読み終わりました。
まあ本の内容が入門レベルなだけあって、理解に苦しんだ部分が少なかったからでしょう。
強いて言うならオブジェクトの概念が一番難しかったくらいで、あとはすんなり頭に入ってきました。
 まだ一周しか読んでおらず、まだ定着していない章や概念が必ずあると思うので、スキマ時間に読み直せたらいいなーと思ってます。
すべての章で360ページほどあるので、すべて定着するまで(読む時間も含めて)まだ時間は掛かりそうです。
 ちなみに使用した書籍はこちらです。

スッキリわかる Python 入門

 Amazon の評価で高かったものをテキトーに選びました。(笑)
あ、でも内容は評価以上に良かったと思います。
僕みたいに「Pythonに触れたことはあるけどよくわかってない」と思っている方や、「Pythonって何?プログラミング言語って何?」と全く触れたことのない方にとっても良い入門書になると思います。
 一応 Amazon のリンク貼っておきますね。(第二版が出てるらしいのでさらに見やすくなってるかも)

 以下では使用書籍の各章ごとの感想を書きたいと思います。

各章ごとの振り返り

第0章 ようこそPythonの世界へ

 なんと0章があり、この章でPythonの特徴や基礎的な用語・知識の説明が書かれていました。
Pythonを使うための環境構築の仕方を説明をされてから実際にPythonに触れてみるといった流れがあり、初学者の僕にとって優しいスタートでした。
やっぱりいきなり勉強らしいことをやるより、入口がある方がいいですね。


第1章 変数とデータ型

 この章では「式のしくみと変数およびデータ型」について学びました。
Pythonで良く使われる演算子から始まり、値の種類の説明でこの章は終わりました。
実際に自分で手を動かして”どういう値が返ってくるのか”を目で見ることが、体験として一番良いと感じました。
 まあこの章の内容は授業を受けていたので、新しい発見は少なかったです。もちろん良い発見もありましたよ。


第2章 コレクション

 この章では「データをまとめて扱うしくみであるコレクションの基本」について学びました。
授業ではリストしか扱わなかったのですが、ここでは新たにディクショナリ・タプル・セットの3つが登場し、それぞれの使い方や使われ方、特徴について詳しく学べました。
他にもコレクションで使われる演算子や関数も出てきました。


第3章 条件分岐

 この章では「条件に基づいて処理の流れを制御する方法」について学びました。
具体的にはif文の使い方や種類、重要性について説明されていたのですが、if文は授業でも扱ったのでほとんどが復習でした。
 あ、でも「3つの制御構造を組み合わせることで、ありとあらゆるプログラムの作成が可能である」という数学的に証明された構造化定理については初見で、面白かったです。


第4章 繰り返し

 この章では while文と for文を学びました。
この繰り返し文は必ずマスターしなければならないものなので、ゼロから学ぶ気持ちで取り組みました。
 繰り返し文単体で使うのは簡単なのですが、他のものと組み合わせて使うのが難しいですね。
もちろん通常は組み合わせて使うので、演習あるのみです。


第5章 関数

 この章では「関数の作り方と使い方」を学びました。
一応授業の方で扱ったのですがほとんど覚えておらず、終始初見の気持ちでした。
 作り方に限らず、関数を作るうえで非常に大事な概念である、引数と戻り値についての説明もとても良かったです。
特に独立性の破れについての説明はとてもわかりやすかったです。


第6章 オブジェクト

 この章ではオブジェクトの概念について学びました。
この章は完全に初見の内容だったというのもあり、はっきり言って難しかったです。
特にオブジェクトの設計図の設計、つまりクラスの設計をするというのが難しかったです。
 クラスの概念もあやふやなところがあるので、この章は特に復習しないとですね。


第7章 モジュール

 この章ではモジュール、つまりライブラリやパッケージの使い方や特徴について学びました。
まあこの章は使い方がメインだったので特に難しかったところはなく、新しく学ぶことも少なかったです。


第8章 まだまだ広がるPythonの世界

 この章は外部ライブラリなどを使用して軽い開発の紹介がメインでした。
「Pythonでは何ができるのか」の具体例がたくさんあり、とても参考になりました。
 別の授業で扱ったマイコンの一つである Raspberry Pi の Pi は Python に由来しているというのは面白かったです。(関係ないですが 笑)

今後の勉強

 まだ入門書を読み終わっただけなので次のレベルに合った参考書に加え、2年生から始まるプログラミングⅠ・Ⅱで勉強できれば良いと思います。
というか入門書の内容すべてを吸収できたかさえ怪しいので、今より定着させられるよう勉強したいと思ってます。

 また、専門的なライブラリの使い方なども勉強できたらなーと思ってます。
あ、でも優先順位は結構低めですよ。難しいので。

機械学習の勉強

 以下では機械学習をどう勉強するのかお話します。

書籍での勉強

 なんと僕が使用していた参考書の著者の方が機械学習の入門書を出してくれてました。
なので次はその参考書を使わせて頂こうかなーと思います。
 一応下に Amazon のリンク貼っておきます。
レビューを見てみると、数学やアルゴリズムの話は省いているらしく初学者に優しい内容となっているらしいので、買ってみました。
 今のモチベーションとして、機械学習を深く勉強するつもりはないです。なので全体像を把握する上では良い参考書になってくれると思ってます。

YouTubeを活用した勉強

 書籍だけではなく、YouTube も活用しようかなーと思ってます。というかもう見始めてます。
僕が見ているチャンネルは AIcia Solid Project という方です。

(可愛いですよね)
といっても僕が見ているのは機械学習の動画ではなく、深層学習の動画なんですが (笑)
でも機械学習に通づることはありますよね???
このチャンネルの解説ではバリバリ数学を使うので、ベクトル解析とは別で線形代数の知識が役立ったなーと思います。(線形代数というかベクトルのほうが強め)
 まあYouTubeの勉強がメインにはならないので参考程度で観られればなーと思ってます。

最後に

今回は
 ・機械学習を勉強しようと思っている
 ・Pythonの基礎知識を勉強した
 ・機械学習をどう勉強するか
の3つのお話をさせてもらいました。
 機械学習の勉強は今必要ではないのですが、趣味としてゆる〜く勉強できたらなと思ってます。
なんたって線形代数や力学、学校の一般科目・専門科目の勉強があるので、そんなすぐには読み切れないです。

それではまたー

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