めたもんぐ日記

プログラミング、コンピュータ、投資、転職活動など。気になったことはなんでも記事にします。

機械学習のアイデア

パッと思いついた、機械学習のアイデアがこれ!

人工知能でラインスタンプをつくる!

素晴らしいアイデアじゃないですか。 ラインのクリエイターズスタンプの大量のデータを学習して AI自動生成のスタンプを作ります!!
ジャンルを分けたりしても面白い。 かわいい系とか、シュール系とか。 あと、吹き出しの文字も一般的なものを採用したい。
本音を言うと、LINE絵文字も新登場したことですし こちらのほうが情報量が少なくて学習しやすそうだから 絵文字の方でやりたいけどまだ種類が少なすぎますね。


オンラインストアのダウンロードランキングで 人気のスタンプの特徴を学習して自動生成すれば これは、、、売れるんじゃないか!!!???
しかし、ディープラーニングの研究が個々数年で 革新的に進んではいるものの、画像生成はまだまだハードルが高い。


かのグーグルさんのアルゴリズムを駆使しても、グロテスクな画像生成となるのが現状。

とりあえず、画像スタイル変換「A Neural Algorithm of Artistic Style」とか画像生成「Deep Convolutional Generative Adversarial Network」など理解をするところから始めたい。


というわけで、当面の目標は DCGAN LINE STUMPを作る。にします。


[参考文献]

deepart.io - become a digital artist

AIがディープラーニングで生成した絵がクセになる美しさ

TODOリスト

プログラミング学習

  • Python
  • C++
  • Javascript
  • HTML 5



以下の流れで、基本はオンライン学習サービスを利用して学習予定。
1. SoloLearnで一通り学習
2. Progate

機械学習関連

  • ニューラルネットワーク(CNN,RNN,DQN)の理解
  • 統計学の復習
  • TensorFlow

    書籍で学習しながら、実際にTensorflowをpythonで動かしながら勉強する。
    [書籍]TensorFlowで始めるDeepLearning実装入門

コンピュータビジョン

  • OpenCV
  • SIFT/SURFなど画像特徴



文献調査などなど。

Djangoチュートリアル mac環境にて

Python3でDjangoを使ってWEBアプリのサンプルを動かそうと思いまして。
以下の記事を参考にして、環境構築をしてみました。

qiita.com
内容はともかく先ずは動かしてみよう。
記事では、Win環境で実行していますが私はmac OS High Sierraを利用しています。 Gitを公開して頂いているので、先ずは以下のコードをクローンします。
github.com

git clone https://github.com/okoppe8/Django-Simple-CRUD-Sample:embed:cite


続いてDjangoをインストールします。

pip install django django-crispy-forms django-filter django-pure-pagination


インストールが無事完了したみたいなので、以下のWindowsコマンドを読み替えて実行してみました。

Windowsでのコマンド

python -m venv env
env\Scripts\activate
pip install -r requirements.txt
manage.py migrate
manage.py createsuperuser 
manage.py runserver


Mac OSでのコマンド

python -m venv env
source env/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser 
python manage.py runserver


WindowsとかMacとかプラットフォームに応じて、venvで仮想環境を有効化するコマンドが違うみたいです。
28.3. venv — 仮想環境の作成 — Python 3.6.5 ドキュメント
んでウェブサーバは無事起動したみたいです。

名簿アプリなのですが、すぐにでも実用できそうなほどクオリティが高くびっくりしました!

   f:id:shatastron:20180608040747j:plain
これをいじりながらDjangoの勉強をさせていただきます。

Python3の勉強法

題目の通りPython3の学習方法について紹介します。

SoloLearnがオススメです。

いきなり結論ですが、SoloLearnとは、オンラインで気軽にプログラミングの学習ができるサービスです。 私もびっくりしたのですが、完全に無料で11言語の学習ができます。

www.sololearn.com

残念ながら日本語には対応していませんが、むしろ英語の勉強も捗りますし、簡単な英語しか使われていないので、理解に苦しむことはほとんどありませんでした!

Arguments = "引き数" など、プログラマとして知っていると他のプログラミング言語を勉強したり、英語文献を調査する際にもとても助かっています。            f:id:shatastron:20180607210638j:plain         

長々と説明するのも大変なので、以下に感じたメリットをまとめます。

  • 勉強→実践の流れで身につく
  • 英語も一緒に慣れる
  • すでに理解している範囲は、プレテストに合格すればすっ飛ばせる
  • アプリがめちゃくちゃ使いやすい
  • クラウドで進捗が同期される

新しくプログラミングを学習なさる方にはぜひ活用ください。 (学習本買う前にまずトライしてみましょう)

学習本の半分の内容は十分これでカバーできます。 入門書は買わなくていいレベルかと。           

ではまた!

大手企業転職のコツ【旧帝理系院卒】

新卒で大手SIerに就職して2年が経過しました。   

入社当時は第一希望の企業でしたが、技術的な知識は求められず、開発は関連会社に丸投げし、プロジェクトの進捗管理や部署間調整が自分のメインタスクである現状に退屈し、転職を決意しました。

結果的に希望通りの転職が叶ったので情報共有しておきます。 本記事は、特に新卒入社3年目以内で転職を検討している方向けのものとなります。以下に転職時の私の希望を記します。

転職検討時の私の希望

  1. 現職と違う職種に転職したい
  2. また大手企業に就職したい
  3. 手間をかけずに転職したい

1. 現職と違う職に転職したい

現職のSIerやSEなどは調整業務の比重の高さに悩まされることが懸念されます。そこで、技術スキルを磨くことができる研究開発職やWEB系の企業への就職を希望していました。新卒入社3年目以内であるため、現職のスキルを直接生かすことはできなくても、第二新卒枠やポテンシャル採用に期待しました。

2. また大手企業に就職したい

福利厚生面や待遇の面では、現職で非常に満足していました。大企業から中小企業への転職は簡単でも、逆はハードルが高くなるというのが日本社会の現状です。例え転職活動に苦戦し、時間がかかってしまったとしても、現職を継続しながら妥協はしないと決意していました。

3. 手間をかけずに転職したい

現職で平日は働きながらの転職となるため、選考書類作成や面接に多くの時間を割くことは物理的に厳しい状態でした。興味のある各社のHPを見ると、エントリーの際に志望動機をはじめとして多くの入力フォームを埋めなければならず、そもそも1社エントリーするだけでどれだけ時間がかかるのか…と諦めモードになっていました。丸一日かけて応募書類を準備したにもかかわらず、秒で落とされてしまったら萎え萎えですよね。

転職の流れ

私の転職活動の流れは次の通りです。 転職サイトに登録してから、おおよそ1.5ヶ月で内定を頂くことができました。

  1. 複数の転職サイトに登録(5社)
  2. 転職エージェントと電話・面談(3人)
  3. 履歴書・職務経歴書作成
  4. エージェントに添削依頼(3人に依頼)
  5. 有能なエージェントに絞る(1人+α)
  6. 求人に応募(13社)
  7. 面接対策(面接ごと)
  8. 書類が通った企業で順次面接
  9. 内定GET

順番になぜこのような流れを取ったのか説明します。

複数の転職サイトに登録

はじめに、大手のパソナキャリア に登録しました。
転職サイトに登録をすると、すぐにエージェントから電話がかかってきます。 ここで、転職の意向について聞くために、面談 or 電話面談をしましょうという話を受けます。

この時、突然の電話着信でグイグイ来る感じに、私はビビってしまい、「軽い気持ちで登録したので、現時点での面談は必要ないです」と断ってしまいました。ただし、この時点で面談を受けても受けなくても、転職エージェント達は転職界隈に無数に存在して常に獲物(我々)を探しているので全く問題はありませんでした。

自分のプロフィールをある程度入力すると、オファーやらおすすめ求人やらがバシバシ来るようになります。ある時、メッセージの中に興味のある企業を紹介してくれそうなエージェントからメッセージが入っていました。エージェントがどういう存在なのか把握していませんでしたが、はじめて連絡をとって電話面談をすることにしました。

エージェントに対して希望を伝えると、非公開の求人も含めておすすめの求人を紹介していくれます。しかし、転職エージェントによって抱えている求人にも差があるという話を聞いたので、他の転職サイトにも登録してみることにしました。転職サイトによって、関東の求人多数/IT系に強い/etc..などそれぞれ強みとしている部分が違うため、自分にあったサイトに登録すると良いでしょう。

転職活動開始

お久しぶりです。

社会人3年目に突入しました。 一部上場企業においてSIerとして奮闘しております。

当初は自分の興味のある分野のアプリケーション開発で技術を磨き、 でけえ仕事をこなしてやる!と意気込みMAXだったのですが、 どうも最近違和感を感じています。

現職では、なんというか… エンジニアのはずが、あまり技術的なスキルが求められません。 (入社前からある程度は予想していたのですが) SIerは全般そうなのかもしれませんが、プロジェクトの超上流工程を担当するため、 プロジェクトの進捗管理や関係者との調整ごとがメインの業務になります。

システムの設計・構築に関しては、完全に外注しており、 技術面では技術のプロフェッショナルである外注のおじさんたちに一任する体制になっています。

私の仕事は、おじさんたちの成果物を確認して上司や顧客と情報連携する部分になります。

…これって俺のやりたかったことなのかな? と違和感が限界を突破したので、転職活動に踏み切ることにしました。

シンプルなアービトラージ

私はビットコインを長く保有したいと考えています。

しかしただ待ってるだけでは退屈なので、 アービトラージでちまちま利益をあげられないかと考えています。

仮想通貨でアービトラージする方法について考えました。 各取引所に下記の資産が分配されているとします。

取引所A 100万+ 1 btc

取引所B 100万

取引所C 100万

[計] 300万 + 1btc

この時に仮に以下のような価格差が発生した場合、Aのコインを売り、同量をBで買います。

取引所A 1 btc = 50万 (売) 1 btc

取引所B 1 btc = 45万 (買) 1 btc

取引所C 1 btc = 55万

[計] 305万 + 1 btc

そして月日が経ち・・・ 以下のような状態になった場合、Bのコインを売り、同量をCで買います。

取引所A 1 btc = 55万 

取引所B 1 btc = 50万 (売) 1 btc

取引所C 1 btc = 45万 (買) 1 btc

[計] 310万 + 1btc

無駄に長くわかりにくい説明になって申し訳ないですが。。。

要するに、今持っているコインをより安く買える取引所があれば 持ってるぶんは売ってしまって、一番安いところで同額コインを買うというのを繰り返すのです。

これを各取引所のAPIを利用して価格を引っ張ってきて 自動でやってくれるツールを今作っています。

今の時点では三つの取引所しかアカウント持っていませんが、 bitflyer、coincheck、zaif この三つでまずは検証してみようかと思います。

bitFlyer ビットコインを始めるなら安心・安全な取引所で

ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin