弥生開発者ブログ弥生開発者ブログ2022-06-06初心者エンジニアが機械学習の研究開発をする中で思ったこと※本記事は旧ブログからの転載記事です(過去投稿日:2020/12/19)はじめまして。SMARTチームエンジニアの鍋谷と申します。今回は機械学習の研究開発業務を行ってきた中で、初心者エンジニアの私が感じた点を書きます。はじめにまずは簡単に自己紹介します。普通プログラムで何かの判断を行いたい!と思ったら、以下のような流れを考えます。ルールを事前にはっきりと形にできないものもありますよね。いう場合、仮に最初にルールを決めたとしても、誤って判断されてしまうことが大半でしょう。機械学習は、「正しい入出力をペアとしたデータをもとに、判断ルールを自動で改善していく手法」です。1つまり、判断をしてきた経験をもとに、どんどんとルールが改善されていくわけです。このルール改善の過程を、「学習」と呼びます。学習の結果どのようなルールができるかは、学習の際に用いるデータや、学習方法の設定などによって異なります。一度も学習させずに予測することは難しいです。「最終的にどれだけ成果が出るか」は、実際にモデルを動かしていかなければわかりません。これは普通のプログラムとは異なる、機械学習の大きな特徴です。いえ、どれだけ成果が出るのか全くわからない状態では、会社としてプロジェクトに大きく投資することは難しいでしょう。実運用するプログラムを作る前に、研究開発でモデルを動かし試行錯誤することが、機械学習のプロジェクトでは特に重要であると考えます。実運用の状況を想定して研究開発ができていれば、その知見を活かして成果をある程度予測できるでしょう。これが、私の考える研究開発の重要性です。機械学習の研究開発をする上で、「何を実現したいか」を明確にすることは非常に大事だと感じました。「何を実現したいか」で用いる手法が変わる一口に「機械学習」といっても、古今東西いろいろな手法があります。これらの手法はそれぞれに特徴があります。プロジェクトで何を重視するのかがわかっていないと、最適な手法を選ぶことができません。単純な線形回帰でそれなりの正解率が出る問題について、それなりに正解率が高ければいい、運用コストは抑えたいという場合を考えます。この場合に、非線形なディープニューラルネットワークをGPU環境で学習してモデルを作成する......といった手法を選択するのは、オーバースペックで高コストとなってしまいます。このように、「何を実現したいか」を把握してタスクの性質を捉えたうえで、使用する技術を選定することが大事です。「何を実現したいか」で評価指標が変わる機械学習の研究開発では、複数のモデルを用意して性能を比較していきます。このとき、単純に「正解率」をモデルの評価指標とすればいいかというと、必ずしもそうではありません。単純な二値分類について、予測結果と実際の分類結果をある区分に属するかどうかで整理すると、以下の図のようになります。この図において、評価指標は以下のようにいろいろあります。判定したもののうち真陽性だったものの割合そして、最適な評価指標は場合によって異なります。評価指標として「再現率」を重視します。一方で、「会計システムで勘定科目を予測したい」「誤った勘定科目には分類したくない」という場合であれば、評価指標として「適合率」を重視します。このように、ものによって最適な評価の指標は変わります。2だからこそ、「何を実現したいか」を明確にし、どのような指標で判断すべきなのかを考えなければなりません。技術動向に常にアンテナを張っておく機械学習分野は最近ホットな話題ということもあり、非常に研究成果のアップデートが早いです。技術選定をした2年後にもっといい技術が出た...ということも多々あります。このため、最新の技術動向がどうなっているかを追っていないと、そのときに最適な手法の選択ができません。このような技術動向を知る機会をいただいています。これはかなり恵まれていますし、勉強のモチベーションも上がります。機械学習以外についても知る運用に乗せるための研究開発をする中では、「機械学習以外の知識」も必要です。モデルの性能比較においては、測定誤差を踏まえて考察を行うなど、統計の知識を持って取り組む必要があります。運用環境の検討では、メモリやCPUなどのリソースの使用状況を監視することが状況改善の考察につながります。クラウド上で動かすということであれば、クラウドコンピューティングの知識も必要となります。機械学習を実際に動かすシステムの全体像がどのようになっているかを知っておくことも、いわずもがな重要です。このように、「機械学習の研究開発」をするといっても、実際の運用を考えるためには機械学習以外の知識が必要です。機械学習の知識とエンジニアとしての知識の両方をもっと勉強して、頑張っていきたいです。さいごに研究開発は新しく覚えることも考えることも多く、大変刺激的で楽しい業務です。興味を持っていただけるかたは、採用ページを是非ご覧ください。www.yayoi-kk.co.jp厳密に言えばこれは機械学習の中でも教師あり学習の定義です。余談ですが、再現率と適合率のどちらも同じくらい重要という場合は、これらの調和平均をとったF値という指標がよく用いられます。次世代プロダクト開発のエンジニアのなべやです。今...2022-11-07もくテク「読んでよかった技術書・ビジネス書LT」を開催しました!こんにちは。弥生でエンジニアをしている、たけです。...2022-02-01もくテク「新年の抱負を語ろう!LT」を開催しましたこんにちは、情シスエンジニアの飯田です。...2018-12-03SwitchRoleを使用してIAMユーザ管理を楽にするMisoca開発チームの@kokuyouです。弥生は第23回Quesに協賛します。引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。