内定先企業

制御/測定機器メーカー

九州工業大学で修士から博士課程を取得したN1のマレーシア人。専門はニューラルネットワークを組み込みシステムに実装するためのField Programmable Gate Array(FPGA)の研究。日本語は来日してから勉強を始め、研究分野まで説明できるほど上達した優秀な学生です。現在ポスドクとして九州工業大学にてAI分野を研究中。

Profile

国籍・地域
マレーシア
性別
男性
大学
マレーシアプトラ大学
学部
コンピュータサイエンス
学歴
博士

MESSAGE

日本で修士号と博士号を取得し、来日してから5年以上経ちます。
私にとって、日常生活、研究、ソーシャルライフなど、日本での暮らしに慣れてきたものの、日本における就活はとても大変でした。情報が入ってこなくて、エントリーなどのプロセスに慣れていないことに加え、履歴書の書き方や応募時に必要とする書類など、就活において多くの壁にぶつかりました。
そんな時、友達にASIA to JAPANのことを勧められました。友達はなんとたった何日かで、いくつかの内定いただいていたことに唖然としました。この話をきっかけにASIA to JAPANで履歴書を提出してみようと決意しました。

申請は、基本情報などの書類や自己紹介のPR動画などを添付し、簡単に申し込むことができました。今までだと、ASIA to JAPANの申請を通過したあと、3つ以上の企業に面接に選ばれた就職希望者は、AtoJ経由で、交通費と宿泊代などが無料で日本に招待されていたが、私が応募した時、既にコロナ禍に入ってしまい、面接は対面で行えなくなりました。しかし、面接はオンラインになっても不利になることはなく、むしろ1社に選ばれるだけで面接を受けることができ、オンラインに切り替えたお陰でもっと頻繁に面接を受けることができるようになったと思います。

面接に選ばれると、企業の情報、募集要項などが就職希望者に表示され、マイページでどれほどこの企業が「気になる」のかを示すことができます。面接でよく聞かれる質問、企業はどのような人材を求めているのか、といった詳細も記載してあります。この詳細な情報で企業について理解し、自分はこの企業で働きたいかどうかなどについて考えることができました。

スタッフは優しく、質問に対して丁寧に答えてくださり、そして面接でのパフォーマンスを評価し指導もしていただきました。
実は、プログラムに参加するのは2回目になります。最初の年、3つの企業と面接を受けましたが、色々な事情で内定を辞退せざるを得ませんでした。そして、もう一度、次の年にこのプログラムに参加したところ、内定をいただき、受諾することができました。そのほか、希望していた企業に直接ホームページを通して応募しようとしましたが、コロナ禍の厳正な審査でうまくいきませんでした。

ASIA to JAPANのお陰で、私が希望した業界や学歴に合った企業と出会うことができました。日本で働きたい、でも情報が入ってこない、就活したことがなくどこから始めればいいか分からないとお悩みの方は、ぜひASIA to JAPANのプログラムに参加してください。参加無料なのに多くの企業とマッチできますし、面接の指導も充実しています。さらに、就活のプロセスは 1次面接からたった1-2週間で内定をいただけ、普段数ヶ月かかることと比べたら夢のような話でした。日本での就活がなかなかうまくいかないと悩んでいるあなた、AtoJのイベントに参加して、スタッフと話してみてください。お見逃しなく!

FINAL YEAR PROJECT

1.研究題名:「効率的なハードウェア指向ドロップアウトアルゴリズムの開発」
2.背景:
近年、神経回路又はニューラルネットワークを人工知能に載せて、ロボットや自動運転等の応用に役だてることが流行ってます。しかし、ニューラルネットワークの学習は非常に計算コストがかかりますし、GPUなどの高速デバイスを使う場合、消費電力が高いです。FPGAやASICなどハードウェアディバイスは低消費電力でリアルタイム処理が可能です。そのため、組込みシステムに広く実装できます。
しかし、現在のアルゴリズムは、ほとんどがソフトウェアに適しており、そのままFPGAに実装したら多大なリーソスがかかり、並列処理ができません。従って、リーソスの消費を最小限に抑え、並列処理を可能にするよう変更されたアルゴリズムが必要です。

ドロップアウトは過剰適合問題を解決するための一般的な手法の一つです。機械学習でよく使われており、訓練データに対して学習されていますが、未知データに対しては適合できていません。ドロップアウトは学習時、ランダムで入力層と中間層のニューロンを落として、過剰適合問題を避けます。しかし、ニューロンをランダムに落とすことは、ハードウェアで実装することが難しいです。元ドロップアウトは乱数生成器を使って、設定した比率と繰り返し比べます。この手法は並列処理に向かず、多くのリーソスも必要です。
 
乱数生成器や比較器などリソースがかかるものを使わず、並列処理できるハードウェア指向アルゴリズムを開発します。提案手法は、ベースとして事前に作ったドロップアウトマスクを用い、回転またはシャッフルして新しマスクを生成します。一般的な手法と比較しても、同じぐらいの効果を得られ(ソフトウェア検証)、リソースがかなり削減できることを検証しました(ハードウェア検証)。その上で、提案手法が並列処理できるから、1クロックだけでマスクの生成ができます。

3.研究目的:
提案手法を検証、元の手法と比べ、リソースや正確率を比較のため。

4.過程
1)ブロック図とフローチャートを設計
2)提案手法のpythonコードを書く
3)ニューラルネットワークを学習させる
4)パフォーマンスをを比較
5)Verilogコードを書く
6)消費の合成リソースを比較

5.結果:
1.提案された方法は、オーバーフィット問題を解決できる従来のドロップアウトアルゴリズムと同じ効果を達成しました。 (認識精度の面で比較)
2.並列処理が可能な提案された方法により、単一のクロックサイクルで処理を完了できます(処理速度はクロックの周波数に依存します)
3.リソース消費は3つのアプローチの中で最も少なく、FPGAへの実装で最も効率的です。

6.振り返り
この研究で、ニューラルネットワークに関する知識を学びました。一つのアルゴリズム開発ですが、全面的に理解しないと、コード書く時、全体のパフォーマンスを影響することがあります。新しい手法の開発ですから、色々分析や実験が必要です。並列処理がなかなか難しいです。それをよく理解するため、ゆっくりひとつずつ描き、分析して、近道がないことがわかりました。

My research is to implement hardware oriented neural network algorithm for efficient FPGA implementation. Neural network has outstanding performance in various fields such as automation, robotics and so on. Deep Neural Network can be applied for only inference mode or trainable mode. In inference mode, the DNN uses the pre-trained model and does not update with the changing in time and environment, where in trainable mode, the weights of the model update corresponding to the changes, allow the network to learn. To apply DNN, the processing system can be categorized into three major class, which are software system (CPU, GPU, etc.), hardware system (FPGA, ASIC, etc.) and software-hardware combination system (SoC, etc.)
However, training neural network on device is relatively difficult due to the high computation cost. FPGA is an electronic hardware device that enable real time processing with very low power consumption. Thus it is suitable for application of mobile device and embedded system. However, the implementation of neural network into FPGA is difficult because the difference in architecture resulting common algorithm unable to apply in it efficiently, in term of either resources or performance as well. Moreover, the constraint of resources in FPGA resulting the higher priority in efficiently utilize the resource optimally.

[Problem Statement]
The biggest problem of implement DNN in embedded system is the high power consumption caused by the complex computation. This problem can be tackled by implement with FPGA, which provides real-time processing with low power consumption due to its parallel processing characteristic. However, the current algorithms of neural network are usually developed in CPU or GPU, which is software-based and is not suitable for FPGA. The hardware oriented algorithms are required.

[Solution/Proposed method]
In this research, we focus on dropout algorithm and propose an alternative dropout algorithm which is hardware-oriented, by eliminating the required of random number generator, and enable in parallel processing, resulting real-time processing and resource-saving. The dropout technique is usually applied in training the DNN for avoiding overfitting problem, which is caused by over-train the model and resulting drops in performance.

[Experimental Results]
The experiment had been carried out by separating into two part: software verification and hardware synthesis comparison. In software verification part, various architecture of neural network such as Multi-Layer Perceptron (MLP) and Convolutional Neural Network (CNN) had been trained with different type of dataset (MNIST, CIFAR-10 and etc.) respectively. Experiments were carried out with training the neural networks without dropout algorithm, with conventional dropout, and with the proposed method. Where in the comparison of hardware synthesis, 3 approaches had been carried out to compare the resources consumption and the processing speed (clock cycle). The 3 approaches which are including the conventional dropout in series processing, conventional dropout in parallel processing, and the proposed method.
In this research, several results can be observed and verified through the experiment.
– The proposed method achieved the same effect to the conventional dropout algorithm which can solved the overfitting problem. (Compare in aspect of recognition accuracy)
– The proposed method able to process in parallel, which allow the process complete in a single clock cycle (where the processing speed depend to the frequency of clock)
– The resource consumption is the least compare among the 3 approaches, which is the most efficient in implementation into FPGA.

PR VIDEO