井ノ上雄一 / Yuichi Inoue

属性
エンジニア
Kaggle Grandmaster
Ph.D.

自己紹介

TURINGでエンジニアをしている井ノ上です。京都大学薬学研究科でPhDを取得した後、TURINGに正社員としてJoinしました。学生時代には株式会社RistでKaggle teamにいたり、松尾研究所でインターンとしてチーフAIエンジニアをしながら機械学習の経験を積みました。Kaggleが趣味です。幸運なことに周りにめちゃくちゃ強い人たちがいて、ワイワイやってるうちにCompetition Grandmasterになってました。「面白いことをしたい!」というのが人生の指針です。
 

TURINGで働き始めて。

入社したときの気持ちはnoteに書いたのでぜひ読んでください!
TURINGの挑戦はとてもチャレンジングです。車の会社になる。完全自動運転を作る。誰が見ても簡単ではないとわかります。ですが、絶対に実現不可能だと言う人もいないと思います。さらに実現したら社会へのインパクトは絶大です。こんな面白い挑戦をする機会に人生で何度出会えるでしょうか?「We overtake Tesla」と大それたことを本気で信じて一緒に頑張れるメンバーと仕事をする機会が後どれだけあるでしょうか?カッコつけて言ってますが、こんなすばらしい環境で働けて本当に幸運だと思っています!
Go boldをモットーにフルタイムメンバーもインターン生も裁量を持って日々ゴールに向けた課題にチャレンジしています。会社ではスクラム開発を取り入れてチームとして成果を最大化できるように努力しています。各チームの進捗がSlackにいつも上がっていて毎日刺激的です。(成果の一部は弊社代表のTwitterによく掲載されています→issei_y)若いメンバーが多く、会社の雰囲気もとても良いし、会社のカルチャーも今まさに出来上がってきています。まだまだ足りないことだらけですが、だからこそ自分の努力が会社の成長に直結することも多いので、とても働きがいがあります!
 

Meetyで話しましょう!

こんな人話しましょう!
  • TURING株式会社に興味がある人
  • 自動運転に興味のある人
  • Kaggleに興味ある人
 

コンテンツ

Kaggleのコンペのことや論文のまとめやポエムなどときどき書いてます。こんな感じのこと一緒にワイワイ話したい人です。よかったら見てやってください。

note

Qiita

【Kaggle】2020年に開催された画像分類コンペの1位の解法を紹介します - Qiita
Kaggle Advent Calenderの14日目の記事です。13日目はあらいさんの記事「 CompetitionだけではないKaggleの魅力」でKaggleのCompetition以外の部分を非常にわかりやすくまとめてくださっています。15日目はちずちずくんの記事「 機械学習実験環境を晒す 」で、こちらもとても勉強になりましたのでぜひご覧ください。 私の記事では2020年にKaggleで開催された 画像分類コンペの1位の手法 を振り返っていきたいと思います。コンペ終了後に金メダルだったチームが共有してくれる解法はどれも勉強になりますが、1位のチームはその中でも特に磨きがかかっているものが多いと思います。この記事ではコンペの概要や難しかったところをまとめつつ、金メダルの中でも特に差を分けて1位になったところを私なりに分析できればと思っています。 ホントは画像を含むすべてのコンペを紹介したかったのですが、今回は 「画像分類」が課題でメダルが付与されるコンペティションにしぼりました。ですが、それでも 2020年に8コンペ開催されていたので、そこそこのボリュームにはなりました。 私が参加してないコンペティションもいくつかあり、そちらについてはポイントや着目すべき箇所がずれているかもしれません..もし 「もっとここが大事だったぞ!」 とかあれば教えていただけると嬉しいです! 最後に、ハードなコンペを戦い抜いたあとに素晴らしい解法を共有していただいている1位のチームの方々には感謝の気持でいっぱいです。本当に有難うございます。 1.Bengali.AI Handwritten Grapheme Classification 2.Deepfake Detection Challenge 3.Prostate cANcer graDe Assessment (PANDA) Challenge 4.ALASKA2 Image Steganalysis 5.SIIM-ISIC Melanoma Classification 6.Google Landmark Retrieval 2020 7.Google Landmark Recognition 2020 8.RSNA STR Pulmonary Embolism Detection おわりに こちらのコンペはベンガル語の部首を分類する問題でした。1つの単語からGrapheme root(168クラス)、Consonant diacritic(11クラス)、Vowel diacritic(7クラス)の3つタイプの部首のそれぞれのクラスを予測する課題でした。データは、画像サイズが(137, 236)のグレースケールで約20万枚です。 課題としては非常に取り組みやすいものだったと思います。コンペ中盤では様々なAugmentationの方法が議論されており、そのコードは今でも役立っています。 Kernel: AugMix based on albumentations Kernel: GridMask 評価指標は Macro-averaged Recallでした。3つの部首のうち一番の基礎となる部首については2倍のWeightがかけられていました。この評価指標の特性を理解して、クラスバランスを考慮した補正をかけることでかなりスコアが上がったようです。 Discussion: 14th Place - Hacking Macro Recall - Chris Writeup このコンペのポイントは 未知の単語に対する対応です。テストデータには訓練データにはない単語が存在しており、単純に1つの単語画像から各部首のクラスを学習してしまうと、モデルが部首の組み合わせを覚えてしまい、未知の単語の新たな部首の組み合わせに対し性能を発揮できませんでした。 金圏のチームはMetric learningなどで訓練データに存在する単語かどうかを判定した後、未知の単語には別の方法で学習した識別器を用いるという方法が多かったように感じます。 Link: https://www.kaggle.com/c/bengaliai-cv19/discussion/135984 1位の解法はGANを用いた非常にエレガントな手法でした。図はDiscussionの引用です。 大きな流れは、 CycleGANで手書き文字をフォント文字に変換 すべての文字を作成し、文字レベルでクラス分類 文字レベルの分類器で未知/既知を分ける。 既知のものは訓練データをしっかり使って学習、予測 未知についてはさらにOut of Distribution ...
 

つながりましょう!