LoginSignup
30
23

More than 1 year has passed since last update.

27年間事務屋だった私、pythonと機械学習を学んだら半年間でいい感じで実証実験ができたよ

Last updated at Posted at 2021-10-31

私の属性

  • 50代前半の男性です。
  • 大学での専攻は刑法(総論)でした。
  • 1993年春に新卒で地方公務員(事務)になりました。
  • 転職歴はありません。
  • 初めてのコンピューターはPC-6001で、中学2年のときに親に買ってもらいました。

Pythonははじめて、機械学習もはじめて

 Pythonはほぼ、はじめての状態でした。無料で読める入門書を読み始めることがありましたが、理解できないお作法を見ると苦痛が溜まって、入門書を投げ出していました。プログラミングの経験でいうと、ふた昔前にCGIのPerlスクリプトを作ったことがありました。
 機械学習は「はじめての機械学習-小高知宏」を読んだだけです。
 あとは、キカガクのオンライン講座「Python&機械学習入門」を不真面目に受けました。
 まるっきりの雑魚キャラです。ガンダムで言えば、迂闊に前に出るから撃墜されるザク。

警告 ここからポエムから始まります。

   ポエムを飛ばしたい方はこちらをクリック

昇進したら私の未来が見えた

 昇進して数カ月後に、組織内で私が歩むであろう今後のルートが見えてきました。
 今後は、非常にゆっくりしたペースで昇進することになります。
 独学で得たITスキルは他人のために使われるか、全く使わなくなります。
 そこでは、私は僅かにしか成長しません。
 そんな未来が見えました。

組織の外へ

 組織外で働いて組織外の文化を取り入れることは、自分自身の成長につながります。
 でも、組織の外に働き口はあるのでしょうか。
 出向とか派遣とかをしてくれるよう、組織に希望を出しても、受け入れてくれるとは限りません。
 私のITスキルを表に出してみよう、そうしたらポートフォリオとしてだれかに評価してもらえて、組織の外で雇ってもらえるようなことに繋がっていくかも。
 そう思ったのが2021年の春でした。
 そのころ、法案誤りがニュースになっていました。

AIなら法案誤りを見つけ出せるのでは?

 法案誤りのニュースを見ていて、「AIなら法案誤りを見つけ出せるのでは?」と特に根拠もなく思いました。
 というわけでネット上で調査をはじめました。
 ネットでAIによる文章校正を検索すると、助詞について機械学習で予測しているブログ記事(RNNで「てにをは」を校正する『にほんごのれんしゅう』)が検索結果に出てきました。深層学習フレームワークはKerasで、ソースコードがgithubで公開されていました。
 これは名詞でも使えそうだと思いました。

# 後でわかったことですが、ニュースになっていた法案誤りは、言葉の使い方での誤りは少なく、インデントなどの文書形式面での誤りのほうが多いので、文書形式面での誤りを解決するほうがよりよかったのでした。

Kerasを理解しよう

 とりあえずKerasを理解したかったです。Google先生に聞いてもよくわからなかったので、

直感Deep Learning - (アフィリエイトリンクじゃないです。)
Antonio Gulli、Sujit Pal 著、大串 正矢 、久保 隆宏、中山 光樹 訳、原著"Deep Learning with Keras"

というKerasの本を買って読むことからはじめました。なぜこの本を選んだかというと、コピーガード機能がついていない電子書籍としてオライリーから購入できるからでした。
 なお、原著の発行年が2017年であるため、2017年6月に発表されたTransformerや、その後のGPT-3、BERT1、T5についての記載がありません。
 本を読んだ結果、単語分散表現がどういうものか、深層学習のモデルが何をしようとしているのかという概念的な部分を理解できた気がしました。その一方で、数学的な表現や数式をほとんど読み解くことができず、理論の応用方法を理解して自分の武器にするということができませんでした

Pythonをどうやって学ぶ?

 Pythonの学習は、本ではできませんでした。
 私の場合は、本を読まず、受講せず、いきなりPythonのスクリプトで実作業を行いました。初めは、テキストファイルからデータファイルを作りました。そこで、わからなければググってスクリプトを直すことでPythonを学びました。
 その後も、ググってスクリプトを直すことでPythonを学び続けました。
 この学習方法の欠点は、ググってすぐに分からなければ時間を多く費やしてしまうことと、正しい、または読みやすいコードには必ずしもならないことです。なにか正当な学習方法があれば、学習効率が向上して時間の節約になり、また、正しく読みやすいコードになったかもしれません。

 いきなりスクリプトに手を付ける前に、どういう方法でPythonを使ったらいいのかを調べました。その結果、あちこちにファイルを置いて、バージョン管理ができないズボラな私には、開発環境はGoogle Colabが良いと思いました。
#モデルを作成する時になって、Google ColabでGPUが使えることがわかりました。

学習環境

 学習(作業)場所を自宅にすると、精神状態の緩和と集中の差が激しい私は、作業が手につかないか寝食を忘れて作業するかの両極端に陥ってしまいがちでした。場所をネットカフェにしたら、誘惑が多くてなにもできませんでした。
 場所を模索した結果、パソコンの使用が黙認されている飲食店の○○○(お察しください)にして、学習効率が悪くなったら自宅に帰ることにしたら、うまくONとOFFを切り替えられました。
 このやり方の欠点は、飲食店はパソコンで作業する場所ではないために、混雑時間帯には出ていかなければならないことと、飲食しすぎて体重が増えがちなことです。

いい感じで実証実験ができた

 今回の取組の目標は、機械学習(AI)による単語予測と、法令文を校正するための予測精度の向上を実務で利用できるレベルにすることでした。また、それができるかは不明であったため、今回の取組は目標の技術的な可能性を実証することになります。実証実験と言えるかと思いますが、検証がないので研究にはなりません。
 取り組んで、だいたい目標まで達せられたのは2021年10月でした。最初から最後まで、満足な結果が出る確実な見込みを持てませんでした。ずっと「なんの成果もありませんでした」とならないか、不安でした。実証実験と言えそうなところまで、やり遂げられてよかったです。
 取組の内容については、以下のリンク先をご覧ください。

今後は

 自分が成長できるところで働きたいです。


  1. 「BERTのMasked Language Modelを利用して文の校正を行う」では"Wikipediaでpretrainしたモデルで文章校正するのは難しそう"としています。 

30
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
23