AIやプログラミングの勉強を進めていて、「よっしゃ動いた!」とか「わかった!」と感じる瞬間はとっても嬉しいものです。逆に、「全然わからない」と悩んだり「才能ないな自分」なんていう風に挫折しそうになることもちらほら出てきます。
コードの意味が理解できずにげんなりしたり、解説文が理解できなくて嫌になったり、エラーを解決できなくてうんざりしたり。。。
未経験からAIやプログラミングを学ぼうとしていたり、独学で何か新しいことに取り組んでいる人ほどそういうことを感じるものなのかもしれません。実際僕もプログラミング未経験からAI(機械学習)エンジニアを目指して日々AIやプログラミングを学んできていますが、そんな出来事は日常茶飯事です。
ただ、これまでを振り返ってみると「もうダメかも・・・」なんていうピンチに陥った時、少し取り組み方を変えてみることで「あ。。やっぱりまだいけた」と前に進めたパターンがちらほらとありました。
そこで今回は、今後も絶対にやってくるであろう「もうダメかも」状態で再起不能にならないよう、挫折しそうな時に知っておくと役立ちそうなことについてまとめることにしました。
わからないにぶち当たると時間だけがすぎる
つい先日も「わからない」にぶち当たって理解に苦しんでいた時のこと。
「教師なし学習」の使い方が全然わからん。。
※教師なし学習:AI(人工知能)を実現するための一つの技術である機械学習における一つの手法
時間だけがどんどん過ぎていって辛い・・・。そうだ・・・こんな時はAIエンジニアのやらさんにメッセージを送ってみよう。。
気さくで優しくスキルが高い、TENGAのTシャツをサラッと着こなす〇〇好きなAIのスペシャリストです。(くわしくはコチラ↓)
教師なし学習についてわからなくて困ってることがあります。電話でお話ししながら教えて頂けませんか。
いいけど、、もちろんアレ奢ってくれるんだよね?「ふ」からはじまるやつね。
アレって・・・。「ふ」からはじまるやつは結構高いんで、他のものではダメでしょうか。ごはんおごらせてください!
そこだけは絶対譲れないね。今回は協力できない、忙しいし。
自分で調べて問題解決していく力もエンジニアにはすごく大事だよ。「ググれカス」ってよく聞くよね?
そ、そうですね。もう少し自分で頑張ってみます。
そしてやっぱり苦戦して辛くなりました。
もうしんどすぎる、辛いと思った時にはどうすればいいのか?
こんな風に「わからない」「理解できない」という壁にぶち当たって落ち込んだ時にどうしたら先へ進めるのか。これまでの取り組みを振り返ってみると、ピンチの時に役立ちそうなちょっとした意識というか工夫が見えてきました。
全部を完璧に理解しようとしない
「これができるまでは先に進めない」
みたいに(完璧主義者?)僕はよく考えてしまいがちで、わからないものに出会うと悩み続けることが結構あります。そんな取り組み方ですから「え・・1週間でこれだけしか進んでないの?」って滅入ることも当然よくあるわけで。。。
冷静に考えてみれば、この「全部理解しよう」精神は止めにして、調べてもわからん(´;ω;`)なんて状況に陥ったなら、そこはもうそのままにして先に進んでしまうのが良さそうです。
というのは、AIやプログラミングは何かの問題解決をしたり、何かを作ったりするためのツールだからです。細かい部分に気を取られすぎると目的を果たせなかったり、先へずっと進めずにいたり、挫折してエンジニアになることを諦めてしまうなんてことになるかもしれません。
そんな状態になるくらいだったら、少々わからない部分があっても気にせず前へ突き進んで目的を達成する方がずっと有意義ですし、だからこそ全部を完璧に理解しようとするのは止めた方が良さそうです。
角度を変えてアプローチしてみる
例えば、ディープラーニングの入門書としては「ゼロから作るDeep Learning―Pythonで学ぶディープラーニングの理論と実装」が日本のデファクトスタンダートになっていますが、僕はこれを読んで正直理解できませんでした。一方で、2018年に出版された「はじめてのディープラーニング -Pythonで学ぶニューラルネットワークとバックプロパゲーション- (Machine Learning)」については理解しながら読み進めることができて非常に嬉しくなったんですよね。
もちろん、どちらの書籍が良いとか評価したいわけではありません。ただ、こうした経験を通じてやっぱり人によって「これならわかる!」と感じる表現はそれぞれ違っていて、大多数の人にとってわかりやすいものが自分に適しているとは限らないことは間違いありません。冷静に考えてみればそれは当然のことで、自分が持っている情報や前提知識によってわかる、わからないは当然変わってきます。
ですから、世間で高く評価されているものについて自分がわからないからといって「自分に能力が無い」とか「向いていない」だとか、そんな風に自信を失う必要はないはずですし「わからない」時には他の情報源を当たってみる、そんなやり方がきっと大事です。
実際に今回も「教師なし学習」について学んでいて、世間でめちゃ評価の高い初心者向けの参考書を読んでもよくわからなかった僕でしたが、他の情報源にいくつも当たってみたら一気に理解が進みました。
つまり、わからなくて行き詰まった時には角度を変えてアプローチしてみることがきっと効果的でしょう。
「わからない」を細分化して一つ一つを理解していく
「わからない」に出会って最初の段階は、とても太刀打ちできないような気がしてげんなりするのですが、分解して細かく確認していくことで「自分はどの部分がわからないのか」を冷静に把握して一つずつ対処していけるようになります。
これは、何をしていいのかわからなくて不安で仕方がない時に、不安なことや何がわからないのかを具体的に細かく書き出していくと、やるべきことや手順が見えて気持ちが落ち着いていく、ということ似ています。
つまり、一気に「わからない」を解決しようとするのではなくて、分解して一つずつ細かく見ていくことで徐々に「わからない」が「わかる」になっていくということですね。そんな風にわからないを紐解いていくことで、スッキリすることがよくありました。
体調や状態を整えて再チャレンジする
ただ、しんどい気持ちになるのは体調不良や疲れが溜まっている時、そして眠い状態である時が多く、実際最近2週間ほど体調を崩していた時期はずっとAIやプログラミングの勉強に力が入らない始末でした 汗。わからないものに出会う度に憂鬱な気分でほとんど進まなかったんですよね。
けれど体調が回復した途端、「何これ?こんなに楽しかったけ!?」なんていう感動体験があってこれにはびっくりでした。なので目の前の問題や出来事をどう捉えどう感じるか、ファイティングポーズをとれるかどうかという点については、体調がかなり影響していることは間違いありません。
体調不良や疲れが蓄積していなくても眠い時にも気持ちは後ろ向きになりがちで、これはちょうどランチを食べた後の業務は眠いしやる気出ないしどうも集中できない、という状態に似ています。
なので行き詰まった時には一旦目の前の「わからない」から離れて、休息を取るなり運動するなりして、心身共にリフレッシュをしてからまたチャレンジしてみると良いようです。これを試してみると実際に「あれ?なんでここでつまづいてたの?」とか「あんなに憂鬱だったのに今はすごく楽しい!」なんていう不思議な体験をこれまで何度もしてきました。
まとめ
とは言っても、今後も間違いなく「もうダメかもしれない」そんな風に思う場面がやってくるはずです。そんな時には、
- 全部を完璧に理解しようとしない
- 角度を変えてアプローチしてみる
- 「わからない」を細分化して一つ一つを理解していく
- 体調や状態を整えて再チャレンジする
ことを思い出すとうまく対処できるかもしれません。
また、こうしたことを活かしつつ最近は教師なし学習について調べて整理した記事をなんとかつくることができました。
教師なし学習に興味のある方はどうぞ
※上の記事については正直なところ全部を使いこなせるレベルで理解できたわけではありませんけど 汗
成長のペースは非常にゆっくりで「え?本当に前に進んでんの自分?」と思って焦ったり不安になることは多々ありますが、途中で諦めてしまわずゆっくりとでも目標に向かって突き進んでいきたいです。
続く↓
AI(人工知能)って「なにそれ美味しいの?」ってレベルだった僕が、AIエンジニアを目指してステップを踏んだり踏まれたりしている記事を書いてます。よかったら読んでみてください(実話)。
コメントをどうぞ