AI企業への転職の流れ(ざっくりと)



AI企業への転職が決まりました!!

5月よりAIエンジニアを夢見て、自己研鑽や転職活動を続けてきた私ですが、
ついにAI企業から内定を頂くことができました!
未経験でAI企業への転職は難しく、何度も心が折れそうになりましたが
友人やTwitterのフォロワーの強い励まし、ご助言、紹介などのおかげで最後まで頑張ることができました。
ありがとうございましたっ!!

本当は、転職した際の工夫・苦労した点・狙った分野など、色々な情報を公開したい・・・ところなのですが、
色々書きたいことがあって、時間がかかってしまうため、まずはざっくりとした概要や工数を紹介させて頂きます。
転職活動をされている方、転職を検討している方にとって少しでも参考になるものがあれば幸いに思います。




ざっくりとした概要

作業工数や応募企業数など、ざっくりと説明すると以下感じです。

・在職中の自己研鑽:約3カ月(主にChainerの勉強、有給消化前)
・自己研鑽・資格挑戦・AI業界の情報を収集:約2カ月(有給消化・退職後)
職務経歴書の修正:約1カ月 (前回の転職時の書類に、前職の経歴やAI関連スキルを追加)
・応募から書類選考の結果まで:1.5〜2週間(夏休み期間と重なった模様)
・応募から内定まで:約5週間
・エージェント経由での応募企業数:
 第一次(AI):4社(2社内定、1社お見送り、1社選考中)
 第二次(AI):2社(1社お見送り、1社選考中)
 第二次(組込):2〜4社(1社書類通過、他は応募前or選考中)
 AI企業の書類選考通過率:50%(結果未確定企業除く)
・第一志望企業:A社、5月に情報収集していた際に、とあるイベントで事業紹介を聞き、A社のようなAI企業で働きたいと夢見るようになった。
 まさかその第一志望企業で内定を頂けるとは思っていませんでした…やばい、嬉しい。
・エージェント経由以外での求人応募:
 Twitterや友人経由で複数社紹介を受け、書類選考や面接に至ったが、結果が出る前にエージェント経由で内定が出たため、辞退した。
 こういった結果になり大変申し訳ないと思っておりますが、転職活動で悩んでいる中、紹介してくださって本当に感謝しています。ありがとうございました。



ざっくりとした出来事

自己研鑽やエージェント経由での応募など、ざっくりとあった出来事をまとめてみました。
Twitterや友人経由での応募もありましたが、そちらは割愛させて頂きます。
※在職中の自己研鑽は割愛しております。
※他にもAI関係の勉強会やイベントに参加しておりますが、諸事情により割愛させて頂きます。

日時 種類 内容
5/1 仕事 退職のため有給消化開始
5/1 自己研鑽 DeepLearning G検に向けて勉強開始、AI関連の事業例や技術の情報収集開始
5/1〜9/1 イベント AIや機械学習関連のイベント・勉強会に参加(月1〜3回程度)
5/27 登壇 インフラ勉強会で登壇。「DeepLearning(深層学習)についてざっくり解説!〜前編〜 」セッションでDeepLearningを解説する。
5/31 退職 -
6/16 自己研鑽 DeepLearning G検定(ジェネラリスト)の受験⇒合格
6/21 イベント DLLAB Dayのカンファレンスに参加し、業界の知識を収集する
6/23 イベント インフラ勉強会半年オフイベント。エンジニアの方達と交流を深めモチベーションアップ
6/22〜7/7 その他 友人経由で求人の応募を検討する、推薦による応募のため他の企業は受けられない・業界の知識が足りないなどハードルを感じ保留に。エージェント経由での転職を検討しはじめる
7/8 その他 友人経由で優秀なエージェントを紹介してもらう(運命の分岐点)
7/9 その他 エージェントと連絡を取る。面談の日程調整
7/11 電話面談 エージェントと電話面談、求人紹介
7/11 その他 未経験でのAI企業への転職は難しいと聞き、絶望する。
7/1〜7/31 書類作成 職務経歴書の修正、エージェントによる助言や添削、そして自身のアイディアを盛り込んで何度も修正したため時間がかかった。特にAI関連の自己研鑽・イベント参加などを目立つように配置した。
7/31 応募 エージェント経由でAI求人4社に応募(A・B・C・D社)
7/31 登壇 インフラ勉強会で登壇。「DeepLearning(深層学習)についてざっくり解説!〜後編〜 」セッションでDeepLearningを解説する。
8月1週 その他 A社より事前質問連絡
8月2週 結果 A・C社で書類選考・通過
8月2週 結果 B社で書類選考・お見送り
8月3週 面接 エージェントと模擬面接
8月4週 面接 A・C社と面接
8月4週 その他 面接の手ごたえが悪く…心が折れる。AI企業への転職を諦めかけたが、フォロワーさんから優しいお言葉を頂く。
8月4週 求人追加 エージェントより求人の追加、AI以外の企業の応募も含め検討開始
8月4週 応募 求人に応募(AI企業2社[E,F]、組み込み系2〜4社[G,H,I,J])
8月4週 結果 C社・一次面接・通過 ⇒ 次回最終面接
8月5週 結果 A社・一次面接・通過 ⇒ 次回二次面接(最終面接は三次)
8月5週 結果 組込み系 G社・書類選考・通過
8月5週 辞退 組込み系 H社・応募を辞退(応募の勤務地が変わったため)
8月5週 その他 組込み系 G社、エージェントの交渉により次回最終面接、1・2次面接を一日で行ってくれることに!
8月5週 結果 AI系 F社・書類選考・お見送り
8月5週 結果 A社、エージェントの交渉により次回最終面接、2・3次面接を一日で行ってくれることに!
8月5週 その他 エージェントの調整によりほぼ同時期に3社の最終面接予定に!
8月5週 面接 C社・最終面接
9月1週 面接 A社・最終面接
9月1週 結果 A・B社・最終面接結果・内定
9月1週 結果 A社への入社を決断


今回の転職活動では上記内容のうち以下点が特に重要でした。

・転職活動前に自己研鑽やイベント参加で業界の知識を得たこと
・エージェントによる書類添削・助言・調整・面接後のフォロー


転職活動に得た知識は面接で本当に役に立ちました。
エージェントから色々アドバイスをもらったものの面接準備をうまくできず、弱点や退職理由などの質問で色々と失敗をしてしまったものの、身に着けたAI知識をもとに質問や回答を繰り返したことで、面接官から勉強熱心だとか熱意を感じて頂けた模様です。


個人的には準備していた面接対策がうまく機能しなかったことが悔しいのですが…
頑張って得た知識がベースとなっていたおかげでなんとかなり、小手先の努力よりじっくりとやってきたことの積み重ねって、ちゃんと自分の血肉になってて、評価されるんだなぁって感じました。

また、色々フォローしてくださったエージェントには本当に感謝しております。
エージェントガチャと呼ばれるほど担当者によって当たり外れがあるらしいのですが、友人経由で紹介して頂いた優秀な方なだけあって、本当に色々な面でお世話になりました。
職務経歴書でAI関連のスキルや自己研鑽をアピールすべきなど、色々助言頂いたり、面接を受けてダメだった点などを連絡したところ、企業にフォローの連絡を入れてくださったり(そのフォローもあって通過したっぽい)
最終面接が1社決まってる中、第一志望の企業(残り2回面接)と調整してくださって、次回・最終面接にしてくださるなど、本当に数々のご助力を頂きました。
本当に感謝・感謝・感謝!!です!!

ただ、優秀なエージェントに頼りきるだけではだめで、こちらからエージェントに質問や助言を求めたりなど、エージェントとの付き合い方の工夫も大事でした。
それについては次回詳しく書こうと思っております。


それと、自宅の札幌で大地震が発生したのはタイミング的にやばかったですね。
地震があった日は本来は北海道に帰る予定になっていて、かつ内定後の面談の日でした。
内定を頂くのが1日でも遅かったら…未来は大きく変わっていたでしょうね。
エージェントのご助力や企業側の結果通知タイミング、東京で面接予定だったなど…
色々なことが重なりあって、得た内定だったと思います。
運命も味方してくれたのかな。


ー以上ー

DLLAB DAY 2018(カンファレンス)に参加してきました。①

DLLAB DAYとは


DLLABとはDEEP LEARNING LABの略でディープラニングに関する開発事例や最新技術動向の情報発信を行うコミュニティです。
PreferdNetworks社(Chainer開発した会社)、日本マイクロソフト、キカガク(DLL関係を扱うアカデミー)などの企業が参加し、日本ディープラーニング協会(JDLA)もオフィシャルでサポートしています。
勉強会やカンファレンスなどのイベントを行っており、connpassなどを使用して参加が可能です。
DeepLearningやAIに興味があるなら、注目しておきたい団体です。

参考URL:https://dllab.connpass.com/

そのDLLABの一周年イベント、それがDDLAB DAY 2018〜深層学習を使いこなす日〜です。
このイベントはカンファレンスとハッカソンの2種類あり、開催時間は10時〜18:30という大ボリュームなものでした。

ハッカソンでは主催者が用意した課題に対してDeepLearningで学習モデルを構築し、その精度を争うものでした。
課題は著者判別(自然言語処理)と、ポテトチップスの味と袋の大きさを分類する問題で、後者はChainerを使用していたようです。
ちょっとやってみたかったですね。

カンファレンスは15社が開発事例・技術情報などを講演するというものでした。
15社もありますが、40分刻みで3Track*5回という構成となっており、5社分しか見れないのですよね。
見たいのがたくさんあって色々悩みましたね。

参考URL:http://dllab.ai/dllab-day-2018/

ハッカソンも魅力的でしたが、実案件の話や最新の技術情報を知りたい気持ちが強く、カンファレンスにしました。
参加したTrackは以下通りです。

  • ユーザとベンダ双方にとって幸せなAI開発のための3つのポイント 柿沼 太一 氏(弁護士法人STORIA)
  • AIを活用した架空送電線画像診断システムの開発について 東京電力パワーグリッド株式会社/テクノスデータサイエンス・エンジニアリング株式会社
  • マイクロソフトが考えるAI活用のロードマップ 日本マイクロソフト株式会社
  • 人工知能が変える医療の現状と未来
  • 研究を加速するChainerファミリー 株式会社Preferred Networks

今回は私が参加したTrackについて紹介していこうと思います。

ユーザとベンダ双方にとって幸せなAI開発のための3つのポイント


登壇者の柿沼 太一 氏はAI、IT、知的財産、ベンチャーなどを中心に扱う弁護士で、
AI関係では自動車・医療・工場・Web系などの企業から相談を受けているとのこと。

参考URL:http://www.meti.go.jp/press/2018/06/20180615001/20180615001.html

AI開発と通常のシステム開発では色々違いがあり、ユーザーとAIベンダ側の双方が特性の違いを理解することが重要です。
2018年3月に経済産業省
「AI・データ契約ガイドライン」を策定したのでこちらを活用するのが有用なようです。
こちらのガイドラインは以下のようなものとなっているので顧客との契約時のやりとりで色々参考になりそうです。


経済産業省は、民間事業者等が、データの利用等に関する契約やAI技術を利用するソフトウェアの開発・利用に関する契約を締結する際の参考として、契約上の主な課題や論点、契約条項例、条項作成時の考慮要素等を整理した「AI・データの利用に関する契約ガイドライン」を作成し、あわせて、本ガイドライン(案)に対する意見募集の結果を取りまとめました。

参考URL:「AI・データの利用に関する契約ガイドライン」より
http://www.meti.go.jp/press/2018/06/20180615001/20180615001.html

開発プロセス・契約の分割は探索型段階型開発方式で進めるのがおススメで、いきなり開発の契約に入らず、いくつか段階を踏んで契約するのがよいそうです。


1.アセスメント
 → 一定量の教師データを顧客からもらい学習済みモデルの生成が可能か検証
2.PoC
 → 少量のデータで学習させ、精度が出るか検証
 → ここがうまくいってから開発の契約に入る
3.開発
 → 実際に開発&学習 
4.追加学習
 
DeepLearning等の機械学習はどれぐらいの精度が出るかは学習させてみないとわからないため、
PoCの段階で実現可能か検証してから本開発の契約に入らないと危ないってことですね。

それと機械学習の開発では通常のシステム開発と異なり、
複数の材料・中間成果物など、最終成果物以外に色々なものができますが、
それの利権(知財・法務)が誰にあるかを契約時に明確にした方がよいとのことです。
具体的には以下のようなものがあります。

・学習の生データ(集めた学習用データ)
・学習データセット機械学習させるために加工したデータ)
・学習済みモデル
・学習済みパラメータ
・学習プログラム
・開発時のノウハウ

これらのデータは開発側も顧客側も所有しておきたいと思うものです。
なぜなら別案件でも流用できるから。

学習データは類似した案件で役に立ちますし、データセット自体を販売することもできます。
また、学習済みモデル+パラメータをファインチューニングして、類似問題に流用することもできるなど、色々便利です。

これの利権で問題にならないように、知財権のルールをあらかじめ知っておくことは非常に有効です。
なぜならAI関する成果物に知財権のないものがあり、そういったものにはルールがないので契約に記載がなければ権利が
どこになるのかあいまいになってしまうためです。

ただ、結局開発側も顧客もほしがってしまうので、権利帰属ではなく、利用条件で実をとるのがベターらしいです。
つまり、第三者提供ルールを定めて、何の制限もなく利用できる、そんな契約にすればWinWinになることが多いようです。

そのほか、以下のような問題が起こりやすいとのことです。

1.開発時の問題
 納期遅延は開発側の責任

2.納品してるときに問題
 納品後、誤判定したなど。
 しかし、AIの場合、原因が不明なことが多く、開発側も結果が予見できない
 そのため、責任はベンダにはない…とできる…はず

3、知財を侵害してしまった
 開発側は一切保証しない
 著作権侵害のみ保証 
 知的財産権の比侵害を保証する
 すべての特許を侵害していないから調べるのは難しい


といったように、AIの開発は通常のシステム開発とは違うので
契約で色々縛る必要がある、とのことです。

空フォルダ一覧を削除するバッチファイルを作るスクリプト

pythonを使って、空フォルダを一覧を作成し、空フォルダ削除するバッチファイルを出力するスクリプトを作った。

python check_folder.py "チェックしたいフォルダパス" "出力するバッチファイル"

check_folder.py

import sys
import glob
import os

def getFileList(folder_path):
    
    # 最後が\\じゃなかった場合追加
    if folder_path[len(folder_path)-1] !="\\":
        folder_path = folder_path + "\\"

    search_path = folder_path +"*"
    filepaths = glob.glob(search_path)

    return filepaths

def main() :
    print("main")
    
# ファイルがないフォルダを探す
def CheckExistFilesInFolder(folder_path_list,no_exist_file_in_folder_list):

    # このフォルダリストにファイルが存在するか
    isFileExist=False
    for folder_path in folder_path_list:
        folder_check = folder_path
        if folder_check[len(folder_check)-1] !="\\":
            folder_check = folder_check + "\\"
        folder_check = folder_check + "*" 
        # フォルダの中のファイルを検索
        file_list = glob.glob(folder_check)

        folder_sub_list = []

        # フォルダのファイルとフォルダをチェック、フォルダがあればfolder_sub_listに追加
        file_count = 0
        for file_path in file_list:
            if os.path.isdir(file_path):
                folder_sub_list.append(file_path)
            else:
                file_count = file_count +1
        
        # サブフォルダにもファイルは存在しない
        IsSubFolderFileExist = False

        # フォルダパスが存在する場合
        if len(folder_sub_list)>0:
            no_exist_file_in_folder_list,IsSubFolderFileExist = CheckExistFilesInFolder(folder_sub_list,no_exist_file_in_folder_list)

        # フォルダにファイルが存在しない && サブフォルダにも存在しない場合
        if file_count==0 and IsSubFolderFileExist==False:
            no_exist_file_in_folder_list.append(folder_path)
        else:
            '''
            if file_count >0:
                print("FileHit! : ",folder_path)   
            else:
                print("SubFolder have file:",folder_path)         
            '''
            isFileExist = True        

    # ファイルが存在しないフォルダ一覧と、渡されたフォルダ一覧にファイルがあったかを返す
    return no_exist_file_in_folder_list,isFileExist
            

# mainのコード
if __name__ == '__main__':
    args = sys.argv
    print(args)
    print("args len :",len(args))

    folder_path =""
    out_file_path =""
    if len(args) > 1 :
        folder_path = args[1]
    else :
        print("Please Folder Path > ")
        folder_path = input()
    if len(args) > 2:
        out_file_path = args[2]
    else:
        print("Please output file>")
        out_file_path = input()

    filepaths = getFileList(folder_path)

    # フォルダだけ抽出
    folder_list = []
    for one_path in filepaths: 
        if os.path.isdir(one_path) == True:
            folder_list.append(one_path)
        
    no_exist_file_in_folder_list = []

    # 空フォルダの抽出
    no_exist_file_in_folder_list ,isFileExist = CheckExistFilesInFolder(folder_list,no_exist_file_in_folder_list)
    
    file_io = open(out_file_path,"w")

    file_io.write("echo Delete ?")
    file_io.write("\n")
    file_io.write("pause")
    file_io.write("\n")

    for folderList in no_exist_file_in_folder_list:
        message ="rd /s /Q \"" + folderList +"\""
        file_io.write(message)
        file_io.write("\n")
    file_io.write("pause")
    file_io.write("\n")
    file_io.close()
    
    print("-----------------")
    print("isFileExist:",isFileExist)

ミルクレープ準備

明後日は先輩の誕生日、
感謝の気持ちをこめてケーキ・・・の代わりにミルクレープを
作ることにしました。

とりあえず、練習のため、通常のクレープを作成。

見た目はまぁまぁだし、味も普通にうまいな。
けど、やっぱり生クリームとかつけて食べるべきでした。
※生クリームは面倒なので作りませんでした。。。


↓が完成予想図です。

画像は3年前に同期2人の誕生日に作ったものです。
ただし、移動中に大幅に崩れちゃいました。。。

面白い思い出1

忘れないうちに今年あった面白い話を日記にしとこう

さて問題です。

下記はなんでしょう?

[謎の画像1]




わかりませんか?


それではヒント1です。
※同じものです。


[謎の画像2]
















なにか文字がでてますね?

では、ヒント2です。
上のものの中からでてきたものです。




[謎の画像3]










はい、
もうわかりましたね?



正解は・・・・



週間少年ジャンプです。



なんでこうなったのか・・・


あれはある金曜日の深夜でした。。。。


仕事で疲れて帰ってきた俺は、
一週間分の洗濯物を洗濯機にツッコミ

明日の朝に仕上がるように予約しました。

一週間分の洗濯物は全部洗濯物のカゴに入れてて

そのカゴの中身を見ずに
ひっくり返して、ガコガコ入れたわけです。



翌朝、

洗濯機の中から無残な状態になったジャンプが発見されました・・・
※↑の画像です。。。

そして、
一週間分の洗濯物が、

ジャンプまみれな状態に・・・・。↓


[ジャンプまみれな画像]


洗濯物\(^o^)/オワタ



ちなみに上の画像は、




1、ジャンプ入り洗濯機から取り出し
2、乾燥機で10分乾燥させる*2回
3、テープでペタペタとりまくり
4、洗濯機で2回洗濯(ジャンプが溶ける)




というのをしたあとの状態で、



本当はもっと悲惨な状態でした。。。。



ティッシュの取り方ぐらいなら、
結構ネットにのってたんだけど、
さすがにジャンプの取り方はのってませんでした。


ティッシュを取る方法で頑張ってみたのですが・・・



1、乾燥機で乾燥させてほろう
 → しかし、Tシャツ系は生地に紙が絡まってるので全部はムリ

2、テープで取る
 → 上の理由でムリ

3、洗濯機で洗濯すると、紙はとける。
 → これでなんとかとけるものの、
   全部はとれないし、非常に水を使う


という感じでした。

一応、会社の作業着などの一部の服は生地に紙が絡まってなかったので
なんとか取りきることができましたが・・・
Tシャツや靴下系はほぼ全滅です・・・

とほほ・・・

愛媛で仕事か?

うちの部署で、愛媛でやらなければならない仕事がでてきた。

若手な俺ではあるが、
そこそこ外でも活躍している俺に仕事を頼もうって話が
部長や課長からあがってる。

ちょっと嬉しいが、大変そうだ。


だが、遠まわしに誘われた際に

「愛媛って、関西?関東?どっちでしたっけ?」

と、課長に言って、信頼を大幅に失った(と思う)から、たぶんないだろう。




・・・問題は、失った信頼をどう取り戻すべきか、だ。



・・・愛媛行ってくるか・・・

雪歩の声優が長谷優里奈(ゆりしー)→浅倉杏美

アイドルマスター2にて
雪歩の声優が長谷優里奈(旧芸名は落合 祐里香)→浅倉杏美に変更だそうです。

http://blog.livedoor.jp/insidears/archives/52338580.html

あんまり、声優にはこだわってないんだけど
非常に弱可愛い声のゆりしーじゃなくなるのは
非常にショック&残念

けど、アイマスの声優さんって、7〜8年の長期間ずっと
同じ声優で続けているんだよね。
これがアイマス2でも、、、ってなると、さらに長い期間アイマスに拘束されちゃうわけで
声優さんもアイマス以外にも仕事があるのに、そっちができなくなるわけか。

残念だけど、しゃーない。

ゆりしーさん、お疲れ様でした。
今まで非常に楽しかったっす。
これからもお仕事頑張ってくださいm(_ _)m

そして、よろしくお願いします。
浅倉さんm(_ _)m

さて、今度こそフルHDのモニタかテレビ買うかな