Skills
Experience
(Worksタブをクリックすると、下記と同じ内容をプロジェクト別で閲覧できます)
大学院時代のプロジェクト
私は三つの国で⼤学教育を受けた経験があり、⽇本語・中国語・英語を⾃由に話せます。慶應義塾⼤学卒業後、オーストラリアのメルボルン⼤学⼤学院IT研究科AI専攻に⼊学し、開発⼿法とプログラミング⾔語とAIに関する知識を幅広く学び、数多くのプロジェクトをこなしてきた中で、⾼い情報収集・問題解決・チームワーク能⼒を養いました。
プロジェクト例は以下です。
- ⾃然⾔語処理及び機械学習の知識で、ツイートの内容がフェイクニュースなのかどうかを判別するプログラムを作成しました。自然言語処理の知識で文章からキーワード、感情表現、テーマなどを抽出し、リツイートとコメント数、発信者の位置情報、アカウントの作成日などの情報と合わせて、機械学習の知識でアルゴリズムを設計してモデルを構築しました。
- 米国マサチューセッツ工科大学主催のMoral Machine実験に協力するメルボルン大学のプロジェクトに参加しました。「自動運転車のブレーキが利かない時、もしあなたがエンジニアだったら、車にどのように動いてほしいか」と被験者に質問します。そして道路状況のシミュレーションをし、被験者にそれぞれのシチュエーションを見せ、車にどの方向に進んでほしいかを選んでもらいます。例えば、まっすぐ進めば、前にいる「定年後のお年寄り一人と子供一人」がひかれることになり、左に曲がれば車に乗っている「医者の50代女性一人と猫二匹」が壁にぶつかりますが、どちらを選びますかというように質問をしていき、被験者の回答を20回以上収集し、機械学習の技術でプログラムに学習させます。年齢・学歴・仕事・健康状態・あなた自身であるかどうか・人間であるかどうか・犯罪歴など、それぞれの軸は被験者の中ではどれほどの重みがあるかを学習したプログラムは、次のシチュエーションからは被験者の代わりに回答をしてみます。その結果を被験者に見せ、あなたの価値観を学習したAIに判断を任せることに納得できるか、と被験者の意見を聞きます。このようなプログラムを作成しました。人間とAIとの関係を、そしてAIの発展における倫理問題を被験者に考えさせるプログラムでした。
プロジェクトのホームページ:https://www.moralmachine.net/
- カリフォルニア大学バークレー校発のPacmanを使用したAI学習法に基づくコンテストに参加しました。Pacmanを動かすためのAIアルゴリズムを作成し、ほかの参加者のAIアルゴリズムと対戦するコンテストでした。三人チームでしたが、アルゴリズムの設計と実装は私一人でやりました。フィールドは半分半分に分かれ、Pacmanは自分の半分のフィールドにいると、餌を取りに来る相手のPacmanを倒せる鬼になり、そして真ん中の境目を越えて相手のフィールドに侵入すると餌取りできるPacmanになります。動かせるPacmanは二体いますが、私のアルゴリズムでは、攻撃役と防御役に使い分けました。攻撃役はBFWと価値反復法の結合アルゴリズムを使って積極的に相手のフィールドに侵入し餌をとり、相手の鬼が近づいてきたら価値反復法アルゴリズムで一番安全な退避ルートを算出して逃げます。防御役はフィールドの境目を遠く離れず、侵入されない時は機会あれば餌取りに手伝いますが、フィールドが侵入されたらA*アルゴリズムで敵の居場所までの最短距離を算出し、撃退に向かいます。
プロジェクトのホームページ:http://ai.berkeley.edu/project_overview.html
Darkspede pty ltd での成果
2021年7月大学院卒業後、将来は日本で生活することにしたため、2022年4月の日本の会社の入社まで少し間があったため、メルボルンにあるITベンチャー企業に入社しました。⼯事⽤の⾞両やツール、建材などのレンタル・シェアするためのアプリケーションの開発に携わっていました。具体的には、以下の三つの部分の開発を行っていました。
1.サーバーAPIの開発
ユーザーアプリの開発に備え、.Netで構築したサーバーに、MangoDBやユーザーアプリとのやり取りと、データ処理に関するAPIを多数実装しました。開発言語はC#でした。
2.ユーザーアプリの開発
ユーザーアプリはさらに二つに分かれ、一般ユーザー用のスマホアプリと、運営会社のアドミニストレータ用のコントロールパネルアプリです。モダンなエフェクトを得るために、いずれもUnityを使用して開発しました。その中で特に開発難易度が高かったのはコントロールパネルアプリで、Unityで作ったWebGLのUIに、車両の位置情報をわかりやすく見せるためにマップを組み込む必要があったので、コスト削減のため無料のJavaScriptライブラリを使用していたため、UnityとJavaScriptとの間の通信に工夫していました。そして、ユーザーアプリのほうは、ゼロから実装をはじめ、テストリリースまでやり遂げました。スマホでUnity Engineを実行するのでスマホの発熱とバッテリー消耗が高かったので、実装の最適化を繰り返し、努力して発熱とバッテリー消耗を抑えることができました。
3.モニタリング用ウェブアプリの開発
テストの結果を常にモニタリングするために、テストに使用する内部用のウェブアプリを、JavaScript/HTML/CSSで開発していました。車両と直接通信することができ、車両が搭載している端末にリモートで指示を出すことができます。そしてモニタリングが一番メインの目的で、サーバーと通信しているすべての車両の位置情報を、Three.jsライブラリを使って3Dで地図上に表示するだけでなく、車両の位置情報履歴と状態を記録し、地図上に車両の動線を描き、スピードやエンジンのオンオフなどの情報をそれぞれ違う色で線を描いて表示します。
株式会社ゼネテックでの成果
2022年4月に新卒として入社し、下記の二つのプロジェクトに携わってきました。去年度の⼈事評価で、開発の成果においては上⻑から10点(満点 ⽬標達成率115%超え)の評価をいただきました。
1.画像認識システムと制御ソフトウェアの開発(2022年4月〜2023年12月)
画像認識技術で製品の良品と粗悪品を見分けるシステムの組み込みソフトウェアと、PC上でそれを制御するソフトウェアの開発をしていました。システムには、輪郭、色、距離、形状、文様パターンなどで判別する機能が30個以上あり、私はほぼすべての処理の実装とテストに携わっていました。開発言語はC++とC#でした。
2.PLMソリューションソフトウェアの開発(2024年1月〜現在)
PLM事業を新規に立ち上げたので、Javaができる開発者としてこちらのプロジェクトに移転しました。Windchillというソフトウェアを中心に開発をしています。PLMソフトウェアの環境構築と保守のほか、お客様のニーズに合わせて、要件定義の先行調査をしてテスト実装を行うことで、実現の可能性を判断します。開発言語はJavaです。
趣味でやったプロジェクト
私は開発に非常に熱心で、普段は趣味で開発をしています。以下は成果の一部です。
1.敵機を追いかけて撃墜するミニゲーム
Unityでゲームを開発してみたいと思って、設計からゲームが完成するまで、夜の時間を使って四日間でこちらのミニゲームを開発しました。無限に湧き出る小惑星を避けながら、敵機を追って、ミサイルで撃ち落とすゲームです。よりリアル感を出すために、光る星空、左右移動時の機体の角度、加速時の炎の演出効果などに工夫していました。出来上がったものは、最初は難易度が高すぎて自分でもクリアできなかったので、一定距離に近づいたら自動照準が始まり、照準が完了したらロックオンが表示され、この状態でミサイルを発射すると、ミサイルの動線がやや敵の方向に近づきます。試行錯誤をした成果として、ちゃんとしたやりこみ要素のあるゲームが出来上がりました。
- ウェルカム画面
- プレイ中の画面
- 設定画面
2.食材管理のウェブアプリ
普段はよく自炊しています。スーパーへ買い物に行ったら家にどんな食材があるか忘れて、買うかどうか迷うというようなことがよくありますので、食材管理のウェブアプリを開発して、中国で一番大きなユーザー数を持つミニアプリプラットホームであるWechat mini programにリリースしました。食材の種別を登録し、それぞれの種別に食材を追加することができます。さらに、量、賞味期限、購入日、保存状態(冷凍/冷蔵)などの情報を記録し、賞味期限が近づいたらユーザーにお知らせする機能があります。妻が愛用してくれています。
- 賞味期限が近づく食材の一覧画面
- 全部の食材の一覧及び編集画面