個人的なニュース

【挫折は大事!】Pythonで挫折してからが重要

こんにちは、チズチズです!

もう大晦日で、明日には元日。早いです。

今年一年をまとめて

2018年にはたくさんの転機がありました。

なぜなら、Pythonに入門してから機械学習をやるようになり、タイピングでもスコアが100近く伸びたりもう色んな趣味に出会い、このブログも含めて新しいことにたくさん挑戦できたのではないかと考えています。

本当に色んな変化がありました。楽しかったです。忙しかったですし、日までもあったというよくわからない日常が続いていました。

Pythonとの出会い

僕がPythonに触れたのは5月頃でしょうか。

前にJavaから入門して挫折した経験があり、簡単な言語はないかなと色々調べていたらPythonという言語が機械学習も出来てナンジャコリャ面白そうと感じたわけです。

しかし、入門したのは良いけれどその後が全くわかりませんでした。

if文、for文等基礎的な文法は理解したつもりでした。(つもり

そこで、開発はしないのかと思っていました。入門書には基本的な文法をCUI上で実行してFizzBuzzゲームで終わってるものばかりでした。

Javaでもそうなんですが、入門を終えて何をすれば良いのかわからないんです!

まだその頃は未熟だったせいかネットサーフィンも難しく、JavaでAndroidアプリ開発とかは何もわからずにそのまま放置して諦めました。

Pythonでは、コードが読みやすい上に機械学習ができるという他にはない特徴があったので機械学習に挑戦してみようと思いました。

Pythonで挫折しそうになったこと

Pythonって本当にやること多いんです。特に機械学習になると…

大学レベルの数学

まずは数学を大学レベルまで持っていくことから始まります。

もちろん僕はまだ中学生で当初は何も考えていなかったため、微分積分は一切わからない状態でした。

Pythonの機械学習の入門書を買ってまず出てきたのが微分、ベクトル、総和、極限と高校数学レベルのものが入門から出てきます。

必死で理解しようとしても数時間かかることがあります。

Twitterの人で言われたのはまず、数学を大学レベルまで持っていけということでした。

言語の壁

今僕が使っている言語、これを読んでいる人は大抵日本語でしょう。

機械学習やPythonは元々アメリカやイギリス等英語圏からできています。つまり、公式ドキュメントやアップデート情報はまず英語で発信されます。そこから数ヶ月経って日本語に翻訳されます。

そこで、数ヶ月という長い期間があったらその間にまた新しいことができていきます。

日本語しか読めないような僕は調べ物をするのにも苦労します。

日本人と英語圏の人で比べたら圧倒的に英語圏の人の方が多いです。

つまり、ネットに書いてある質問も英語で書かれているものが多いです。実際に僕がTkinterのエラーについて調べたものの、最終的には英語で質問されているサイトに辿り着きました。もちろん僕は英語も中1レベルなのでグーグル翻訳を駆使して理解しようと試みています。

段々気付く限界

今は、ニューラルネットワークだってランダムフォレストだって数式は曖昧な理解です。

英語だってGoogle翻訳使うか諦めるかです。

Pythonでは数式を使わなくても機械学習できるようなライブラリがあります。もちろんそれを使えば簡単に実装できます。しかし、Kaggleで色んな人の説明を見ると数式の重要さが伝わってきます。

別に、数式理解してないと組めないってわけじゃないんです。

組むことは誰にだってできます。ライブラリのおかげだからです。

精度を見てからどうするんですか?

大抵は可視化させて、必要なデータを取捨選択したり正則化させたりと統計学に出てくるような色んなものが使われます。

ベイズ統計学に関してはまだ全然理解できていません。

しかし、機械学習やってる人のほとんどは理解しています。

統計学に関しては当たり前のような知識になっています。(僕はそんなわからないけど

グラフを見てあーこれはこうだねえ じゃあこうしようとか

じゃあこのグラフ見てみるかとかの発想があまり浮かび上がりません。

そこで止まってしまいます…

log…?

数週間前僕がKaggleをやってたときにデータを正則化させようとlogを使っていました。

logは何となく理解していました。何乗で何の数になるってことです。

しかし、全く理解できません。logを使って何をしたいのか…

正則化させることはコメントに書いてあったのですがなんでlogを使うかが全く理解できません。なぜなら、logに対する知識が足りないからだと考えています。

その何となくっていうのが駄目でした。知ったか人間になって根っこのない知識だけを知っても何にも使えません。クイズ大会なら使えるでしょうが…

表面上の知識

僕はいつも表面上の知識だけで根幹を見ようとは普段していません。しかし、機械学習をやってからそれが仇となり全然理解できなることがあります。

つまり、挫折です。僕は挫折した時点である程度の原因が見つかっていたため、そこでPythonを辞めようとはなりませんでした。もしかしたらそこで辞めていたかもしれません。

かといって今から数学や英語を本気で大学レベルまで持っていこうとは思いませんでした。

時間が足りないのとココで辞めたらもう戻ること無いんじゃないかと思います。

できることかやってみようと思いました。

自分には出来ないことが多いです。しかし、出来ること、今でしか出来ないこともきっとあるはずです。

というか、今の趣味はPythonだから辞めたくないっていう気持ちもありました。(久しぶりに続けられる趣味を見つけた

挫折しそうになってわかったこと

基礎を踏まえたからもうこれでいいやとかで次に進んだところ、(競プロ

今まで通りが通じないんです。つまり、基礎は基礎です。競プロの計算量だって考えなきゃいけないし、新たな発想が必要です。

自己流では進みは遅い、他人のコードを見たり情報共有をせよ!

真似てください。たくさん。何度も人のコードを見ると、こんな発想があるのか…と思います。自分では思い付かない新しい発想がたくさん出てきます。

伝えたいこと

  • 新しいことには進んで興味を持って!
  • 諦めも肝心
  • 今の自分に何が足りなくて何が出来るかを知る

最後の何が足りないって自分で見つけることは困難です。というか僕もそこまで知っているわけではありません。

言いたいことは「無知の知」のようなことで、知っていることは知っています。知らないことは知ってるわけがありません。つまり、知っている知識が絶対で僕は何でも知っているのように振る舞ってしまうと自分にできないことに直面した時どうしようもなくなります。

年末なので、今までのPython生活をまとめてみましたがまだまだ自分には足りないことが多いです。(勉学含めて

茶番

この前思い付いたくだらないダジャレです

総理のご意向「さぁ行こう!IKKOと1個移項しにいこう!!」

スベりそうで(orz

明日のドスパラSSD安いよ!

(微妙な感じで終わりそうで…

読んでいただきありがとうございました。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です