ニートの言葉

元ニートがやってみたこと・その過程で学んだこと・考えたこと・技術メモあたりを主に書いています。情報革命が起きた後に訪れるであろう「一億総ニート時代」の生き方を考え中です。

AIでボートレースをやったら2ヶ月で200万稼げた話

どうもこんにちはあんどう(@t_andou)です。 

僕はボートレース予想のAI「みずはのめ」というサービスを作っているのですが、ご覧いただいた方からよく言われるのが

「けっこう当たるっぽいけど、本当にこれで勝てるの?」
「そんなに当たるんなら予想なんて売らないで自分で買ったら良いのに」
という内容です。当然のご意見ですね。

開発を始めたころは僕も勝てるかどうかは半信半疑でした。
そのため、ちょっとでも当たりやすい予想を提供することで「回収率50%の人が70%になるお手伝いになれば」というスタンスで情報を提供していました。

ですが、ボートレースの予想AIがどんどん出てきており、みずはのめが提供している情報は本当に価値があるのかの判断が難しくなっていると思います。

そこで、みずはのめで提供している情報で本当に勝てるのかを検証するため、約2ヶ月間実際に運用してみました。

前提

・資金は100万円スタート
・みずはのめで提供している「直前予想 」を使う
・何を買うかは締め切り1分前に判断する
・舟券の購入はみずはのめのAPIを使って自動行う
・みずはのめの「みんなの予想」に買い目の投稿も行う
・参加するレースは6~7割程度
・1日に購入する金額はその日の開始時の資金の20~30%程度
・的中率は7~8%、回収率は110%程度を想定

結果

タイトルにも書きましたが約2ヶ月で100万→300万を突破しました

追記:11/9時点で100万→400万を突破しました

資金の推移はこんな感じです。多少の増減を繰り返しつつも、割と良い感じに右肩上がりになっており、日々の収支も概ね想定内の動きをしています。

f:id:takuya0411:20201031214758p:plain

週次の成績はこちらで公開してます。

twitter.com

 

一応、公式サイトのスクリーンショットも貼っておきます。

9月分

f:id:takuya0411:20201031221347p:plain

9月収支

10月分

f:id:takuya0411:20201101205342p:plain

10月収支

的中した高配当舟券

AIと言えば硬い舟券を狙いに行くのかと思っていましたが、意外と高配当なものも買いに行っているようです。393倍に500円はなかなか冒険してます。

f:id:takuya0411:20201101205514p:plain

的中した高配当一覧

買い目の公開場所

v2.mizuhanome.net

買い目はこちらで公開しています。

f:id:takuya0411:20201103221151p:plain

直近一年の収支(8月以前はシミュレーション)

また、このプロフィールに載せている直近1年の収支ですが、実際の運用開始(8月末)までにいくつかシミュレーションをしていたので大きくマイナスになっていましたが、この2ヶ月で急激に回復しています。(実運用開始のタイミングで戦略を変えました)

終わりに

250万を突破したと思ったら数日負け続けて200万を切ったり、1日で50万勝ったと思ったら1日で40万負けたりとなかなか忙しない日々でしたが、無事にみずはのめの予想を使って勝つことが出来ています。

これからはAIによる予想だけではなく、ボートレースをより楽しむためのコンテンツ開発を続けていきたいと思っていますので、今後ともみずはのめをよろしくお願いいたします。

宣伝

みずはのめで出来ることの一覧表
f:id:takuya0411:20201103174126p:plain

みずはのめではチャットをしながらレースのライブを見れたり、AIによる前日予想などを無料で見ることができます。

月額980円(税別)のプランに入ることで、より精度の高い「直前予想」や舟券の購入、他の予想屋さんの予想へ乗っかって購入する機能などをが使えるようになりますので、是非まずは無料会員登録をしてご利用ください。

使いにくい点などのフィードバックはこちらの問い合わせフォームからいただけると幸いです。

docs.google.com

防音室を作る その1 調査

こんにちは、あんどう(@t_andou)です。

僕は実家に居た時は部屋でギターを引いたり歌ったりしていたのですが、一人暮らしを始めてからは近所迷惑にならないように大きな音を出さないように静かに暮らしていました。

そんな生活を始めて10年以上経ったいま、偶然見かけたこのツイート

防音室って自作できるんだという衝撃を受けると同時に、気づいたら作り方を調べ始めていました。

ということで防音室を作ります
※DIYすらやったことのない素人が試行錯誤しつつ自分用のメモを兼ねて書いているため、現時点では綺麗にまとまった情報ではないことをご了承ください。無事最後まで完成しましたら纏めます。

今回は防音室の自作方法を調査した記録です。

自作した記録まとめ

まずは先人たちの足跡を調べました。
調べてみると自作をしている人は結構いらっしゃるんですね。

先ほどのツイートのかた

一連の流れがnoteに纏められていて概要を掴むのに良かったです。

note.com

↑のかたが参考にしたというサイト

こちらも記事が順に書かれていて分かりやすいです。

blog.livedoor.jp

工程図までアップしてくださっているので非常に参考になります。http://blog.livedoor.jp/britishtree/pdf/%E9%98%B2%E9%9F%B3%E5%AE%A4_%E5%B7%A5%E7%A8%8B%E5%9B%B3.pdf

2.5万で自作したという人

防音性能は分かりませんが安く作りたい場合は参考になります。

www.tamusguitar.com

振動対策

床の下に水道用のゴムホースを敷くことで電子ドラムを叩く振動も軽減できるらしいです。今回はドラムを設置する予定は無いので見送りましたが面白い。

jisakudebouon.web.fc2.com

クローゼット?を防音室にしているパターン

www.nicovideo.jp

だんぼっちを加工しているパターン 1

だんぼっちは段ボールでできた簡易防音室ですが防音性能はイマイチらしく、加工することで防音室として使えるようになるとのこと。

www.nicovideo.jp

だんぼっちを加工しているパターン 2

遮音材として鉛シートを使っている珍しい事例

総額は20万を超えているけれど防音性能は良さそう。

www.nicovideo.jp

制作風景を載せている人 1

www.youtube.com

制作風景を載せている人 2

www.youtube.com

2畳くらいのものを作っている人

図面やパーツ一覧など僕が求めているものを完璧に記載してくれていました

hibitetsu.com

まとめ

すごくたくさんの事例が見つかりました。

知識ゼロからのスタートなので「どんなビスを使うと良い」みたいな情報から記載されているのは非常に助かります。

公開していただきありがとうございます。

次の記事では自分が作りたいものをまとめていきます。

買い占め防止システムを作れないか

どうもこんにちはあんどう(@t_andou)です

新型コロナの流行によりマスクが入手困難ですね。

僕はほとんど外出しないので手元にまだ少し残っていますが、知り合いはフリマアプリを使って親のために1万円で買っていると言っていて驚きました。

さらにこの数日はデマが原因であるとは言え、トイレットペーパーも店頭から無くなり困っている人も多いと思います。

今後、流通が混乱して他の複数の商品において同じことが起きる可能性がありそうです。

さらに、コロナの流行を防ぐために人混みは避けるべきなのに毎朝スーパーに並んでるという人も少なくないように見えます。これでは感染がさらに拡大していきます。

買い占め防止のためのシステムを作れないか

さて本題です。

買い占めを防ぎ、必要分だけ多くの人に渡るためにITエンジニアの僕に何かできることは無いかを考えました。

まだまだ思いつきの曖昧なアイディアですし、僕は流通や製造業界に関して知識が無いため、「既にある」とか「現実的じゃない」「これを使えば実現できそう」などご意見いただけるとありがたいです。

解決策のアイディア

すごくざっくりしてますがこんな感じです

1.店員が入荷予定を登録

2.入荷予定を知ることが出来て予約できる

3.店舗で受け取る

機能の案

具体的にはこんな機能が必要かなと考えてます。

  • 店員が自店舗の情報を登録(店名・住所など)

  • 商品情報と入荷予定(いつどれくらい)を登録

  • 購入側はユーザー登録(1人1アカウントにするため、電話番号をキーにするのが良さそう)

  • 予約をして割り当てる

  • 店舗をまたがっても同じカテゴリ(マスク・トイレットペーパーなど)の商品は購入数に制限をつける

想定される課題

具体的な実装案についてはまだまだ固まってないため、機能面における課題は無視するとして

一番大きな課題は店員さんの手間が増えることだと思っています。(入荷予定の入力や予約した人かどうかの確認が必要となるので)

ですので、店舗側にメリットを考えないといけないです。

今回の騒動が収まった後でも、お客さんに知らせて買いに来てもらう目的で使えるように設計してたら良いかも。

最後に

小売店のかたのアイディアをいただきたいです。
最初は入荷予定を知らせる機能だけでも無駄に並ぶ人が減るので良いかもしれないですね。

また、途中で力尽きるかもしれませんがこちらでオープンに開発していきます。

https://github.com/takuya-andou/Prevent-buy-out/wiki

【Kubernetes】1週間かかる処理を1.5時間で終わらせた【並列処理】

こんにちはあんどう(@t_andou)です。

今回はKubernetesを使って並列処理させた記録です。

まだ「とりあえずそれっぽく動くまで試してみた」という段階で、kubernetesを理解できてはいないので自分用のメモを公開しているという認識でご覧ください。

間違っている部分や、よりスマートなやり方がありましたらご指摘いただけると幸いです。

この記事の概要

機械学習に使う特徴量の作成で1週間かかりそうな処理を10分くらいで終わらせられないかと考え、GKE(=GoogleのKubernetes環境)を使い試行錯誤した記録です。

今回は一部失敗して完了時間が1.5時間になったものの、設定を上手く出来れば15分程度で終わる見込みです。

 

対象読者

・Kubernetesの概要は知っているくらいのレベルの人
・KubernetesのJobを使った並列処理をしたい人

目次

  • この記事の概要
  • 対象読者
  • 目次
  • 背景
    • どのくらい時間がかかっていたのか
    • どうやって処理時間を短縮するのか
    • なぜKubernetesなのか
  • やってみたこと その1:処理部分を独立させた(失敗)
    • 構成
    • 処理の流れ
    • 困ったこと
      • MySQLへの接続部分
  • やってみたこと その2:データをGCSにダンプした(失敗)
    • 構成
    • 処理の流れ
    • 困ったこと
      • デフォルトではGCSへの書き込み権限が無い
      • Nodeの容量不足
  • やってみたこと その3:永続ボリュームにデータを配置した(成功)
    • 構成
    • 処理の流れ
    • 困ったこと
      • 永続ボリュームの読み書き権限周り
      • 使えるvm数に制限がかけられていたのでリクエストが必要だった
  • 完成したymlとシェルスクリプト
    • クラスター作成
    • 永続ボリューム
    • ジョブ実行
  • かかった料金
    • Kubernetesのマスター管理料金:無料
    • データ転送料:ほぼ無料
    • データのストレージへの保管料金:数円
    • VMの料金
      • VMの料金見積もり
    • 合計金額
  • 分からないこと 
    • ReadOnlyManyでPVCを作成する時に最初のデータ配置をどうするのか
    • jobsのCOMPLETIONSが途中で減ることがあった
    • 処理から抜けているものが複数あった
    • GKEのアップデートが始まって時々接続できなくなった
  • 参考にした資料
    • Webページ
    • 書籍
  • 最後に
    • 処理時間について
    • 用途について
  • おまけ:試行錯誤のツイート
続きを読む

高精度でテキスト分類を行えるAIの環境を用意しました【BERT】

 

こんにちは、あんどう(@t_andou)です。

最近、自然言語処理のAIの一種であるBERTをよく触っています。

今回はBERTのソースを読まなくてもサクッと試せる環境を用意しましたので、メモとして残しておきます。

BERTとはどういうものか


画像引用:https://arxiv.org/pdf/1810.04805.pdf

凄くざっくりと説明すると、BERTとは2018年末にGoogleの人たちが開発した自然言語処理において汎用的に使えて精度の良いAIです。

自然言語処理において精度を測るためにいくつかのタスクがあるのですが、発表された時点ではダントツの成績でした。

仕組みなどの詳細については論文を読むか解説記事をググってください。

2019/09/22時点で既により精度の良い手法がどんどん発表されていますが、BERTの情報量と比べるとまだ少ないため、入門としてはBERTを触ってみるのが良いと思っています。

どんなものに使えるか

詳細は書けませんが、僕は実際の仕事で

  • ある文書からその業種を推定する
  • 面接時の受け答えのテキストから面接の評価スコアを付ける

と言ったことに使っています。

他にも、今回の学習方法では使えませんが

  • 質問を投げると答えを抽出してくれるシステム*1

などにも利用されているようです。

作ったもの

繰り返しになりますが、今回はBERTのソースを読まなくても試せる環境を用意しました。公式のソースを少し修正し、実行環境を用意しただけですが。→github , Google Colab

出来ること

自前のデータセットを用意することでテキスト分類をしてくれる人工知能を作れます。

使い方

1.データセットの用意

データセットの形式としてはtextとlabelの2カラムのtsvで
学習用、検証用、テスト用にそれぞれtrain.tsv , dev.tsv , test.tsvというファイル名で用意してください。

2.GoogleDriveにアップロード

1で用意した3つのファイルをGoogle Driveにアップしてください。

※Colab上にアップしても良いですが、ランタイムのリセットで消えてしまうためDriveがオススメです

3.Google Colabを自分のドライブにコピー

今回用意したGoogle Colabはそのままだとコメントしか出来ない状態にしているため、ご自分のドライブにコピーしてください。

4.自分のデータセットに合わせてパス・ラベルを修正

下記の箇所を修正してください。

  1. DATADIR:学習させたいデータセットを置いたディレクトリのパス*2
  2. FINETUNE_OUTPUT_DIR:学習したモデルを出力するディレクトリのパス
  3. LABEL:学習させるラベル一覧
5.学習開始

その後、上から順に実行していくと「4.Train」の箇所で学習が開始されます。

学習完了までの時間はデータセットの量によって変わってきますが、10万件弱のデータセットで2~3時間でした。

※TPUを使うことでより高速に終わらせることが出来ましたが、その場合はGoogleColabとGoogleDriveだけでは完結できず、Google Cloud Storage(有料)を使う必要が出てくるようですので、今回はパスしています。

6.予想の計算

「5.Predict」を 実行するとテストデータに対して予想を計算してくれて、データセットのディレクトリにtest_results.tsvというファイルで出力されます。

最後に

BERTを使い、テキスト分類のタスクを簡単に行えるようにしました。

今回は多言語モデルという日本語を含む色んな言語に対応したモデルを利用しましたが、日本語モデルを公開してくださっている方もいらっしゃいますので、日本語に特化した問題であればそちらを利用した方が良いかもしれません。

参考

https://github.com/google-research/bert

*1:https://www.pragnakalp.com/demos/BERT-NLP-QnA-Demo/

*2:もしもアップロードしたデータセットのパスが分からない場合はGoogleDriveをマウントした後でパスをコピーするとわかりやすいです

【解決】MacOSをCatalinaにしたらFireFoxが開けない

こんにちは、あんどう(@t_andou)です。

最近発表されたMacのOS「Catalina」にしてみたところ、FireFoxが開けなくなって困ったので、その対策をメモしておきます。

以前のバージョンまでは

以前のバージョンまでは右クリックして「開く」→「開く」を選択すれば開けた*1のですが、今回はFireFox自体は開けているのかもしれないですが、Updateでエラーが出て開けなくなってました。(冒頭の画像の状態)

解決策

泣きながらググっていたら解決策を見つけました。

Firefox Developer Edition [and others] not opening in macOS Catalina - Ask Different

  1. terminalを開いて
  2. sudo spctl --master-disable と入力
  3. パスワードを入力
  4. FireFoxが開けた!
  5. sudo spctl --master-enable でセキュリティを戻す

以上です。

最後に

iPad OSとCatalinaを使えばiPadをサブディスプレイに使えてすごく便利です。(sidecarという機能)

以前、duetという有料アプリを購入していたのですが、これよりも反応速度も良く、無線でも使えるのですごくオススメです。さようならduet。

エンジニアになりたい人のためのベーシックインカムハウスを作りたい

 

こんにちは、あんどう(@t_andou)です。 

今回は最近ボンヤリと考えている「やりたいこと」について書きます。

まだ構想段階なので抽象的ではありますが、もしも何か関わりたいという人がいらっしゃいましたらTwitterまたはこちらからご連絡ください。

 

1. 背景:個人的にやりたかったこと

まずは経緯として、僕自身が数年前にやりたいと考えていたことを書きます。

僕は数年前、「ニートハウス」を作りたいと考えていました。
ニートハウスとは「最低限の生活費を貰いつつ好きなことをして生きていける家」という漠然とした構想です。

ニートハウスをやりたかった理由は大きく二つあり

  1. 僕自身がニートだった時期があり、人生に絶望した挙句、自殺未遂を起こしたこともあったため、似たような状況にある人の苦しみを軽減したかったから
  2. 世の中の生産性はどんどん上がっており「人が働く必要性」は減っているにも関わらず「全員が働かないといけない」とか「失業率を下げないといけない」という考えに違和感を覚えていたから

です。

「ニートハウス」に似たものとして「山奥ニート」や「ニート株式会社」のように、ニートが集まった活動はありますが、僕がやりたいこととは何か違うと感じていました。
うまく言語化できないのですが、僕は「人と関わりたくない」とか「何もしたくない」という理由から積極的にニートになろうとする人たちではなく、「今は苦しい状況だけど人生を好転させるために努力をしている人」の力になりたいのだと思います。*1
とは言え、当時は具体的な案もなく、ハウスを運営できるほどの資金も無かったので、漠然としていた「ニートハウス構想」は放置されていました。

それからしばらくして、カイリュー木村さんという方がベーシックインカムハウスというものを始めたことを知りました。
どんなものかというと、アーティストやクリエイターが自身の活動に集中するための環境として、家賃・光熱費無料、さらに毎月1.5万円を支給してくれるシェアハウスというものでした。
このベーシックインカムハウスは「やりたいことがあって、それに集中したい」という人たちを応援するようなコンセプトになっていて、僕がやりたかったのはこれだと気づきました

ところが残念なことに、このベーシックインカムハウスは一年?で終わっていました
詳しい理由は分からないですが、カイリュー木村さんが「趣味でやっている」という発言をされていたようですので、収支の面をあまり考慮していなかったのかもしれないです。アーティストやクリエイターというのは「影響力」という面では良さそうですが、ハウスを運営するための費用を生み出すには厳しかったのかもしれないですね。(勝手な予想ですが)

そこで、収支の面をもう少しシビアに捉えつつ、「ニートハウス」改め「ベーシックインカムハウス」を作れないかを考えました。

働きたくない時は働かなくても生活が出来て、働きたくなったら仕事をして、働いた分だけ収入がアップするような場所。

↓こんなイメージ

 

さて、ここまでは僕の個人的な欲求の話でした。
ここからは上の話を踏まえて、世の中の一般的な課題に結びつけてエンジニア向けベーシックインカムハウスの提案(たたき台)を書いていきます。

2.世の中の流れ

1.エンジニア不足

三年前の資料になりますが、経産省の調査結果によると2030年には79万人のIT人材が不足する可能性があると報告されています。*2

たしかに僕(ITエンジニア)にも仕事の相談がたくさん来ますし、肌感としても人が不足している印象を受けています。

2.エンジニアになりたい人は多そう

そんな調査結果を受けてか、プログラミングスクールやプログラミングの学習サービスは乱立し、プログラマになりたいという人も増えているような印象を受けます。(統計情報などは調べていないので実際の数字は不明ですが)

3.課題感

この世の中の流れはとても良いことだと思っています。
しかし、スクールなどを卒業したからと言って、すぐに現場で活躍できるレベルになるのは稀です。

おそらくスクールを卒業された方々は「未経験者歓迎」と書かれた企業へ応募するでしょうし、スクール卒業生を受け入れる企業は教育すること前提で採用すると思います。

しかし、エンジニアを求めている企業の大半はすぐに活躍してくれる人…言い換えると目の前にある課題を解決してくれる人を探しています(=新規サービスの開発・過去のサービスの保守運用・自動化などの効率化をやってくれる人などなど)

この求める条件の不一致でエンジニア不足が起きているのだと思いますし、この「学習者は多いのにエンジニアが不足している状況」は時間が解決してくれる問題だとしても、いきなり就職して現場に入るのは学習者・企業のお互いにとってリスクが高そうだと感じています。

と言うのも、

  • プログラミングの素質は分かったとしても業務の遂行能力は見極めるのが難しい(プログラムを書けることと仕事をこなせる力は必ずしも一致しない)
  • 試用期間ありで採用したとしても現実問題その数ヶ月で辞めてもらうことは難しい

からです。

 

一行にまとめると

一連の学習を終えた人たちにとって、就職の前にもう1ステップがあった方が良くない?

という感じです。

5.解決案の提案

そこで、現役エンジニアのもとでOJT・インターンシップのように動ける環境を作るのはどうだろう?と考えています。

  •  学習者にとって:現役エンジニアのもとで就職の前のステップとして軽めの案件をこなせる
  •  企業にとって:ちゃんと出来る人がサポートしてくれる状況なので安心して仕事を頼める

6.初めに戻ると

(だいぶ話が飛躍しますが)ここで最初の話題に戻り、先ほどの解決案に書いた環境として、エンジニアになりたい人のためのベーシックインカムハウスを作ろうと思っています。

イメージ図

最初は僕が受けている案件の一部をお手伝いいただくような形が良いかなと思っていますが、最終的にはBIハウスで案件を受けて内部で業務遂行、そこでハウスの運営費や住民の生活費を差し引いて仕事をした人へ報酬が渡るような仕組みを作れたら良いなと思っています。

BIハウス案たたき台

まだすごくざっくりした案ですが下記のように考えています。(変更になる可能性は十分あります。)

  • 家賃・光熱費は無料です
  • 生活費(1.5万)支給します
  • 都心から1時間くらいのところに作りたい
  • 1人1部屋の個室
  • (おそらく期限付きになります)仕事しなくても大丈夫ですが、出来れば勉強または何かしらアウトプットしてもらえるとありがたいです。
  • 現場へ出勤しなくても出来るリモート可能な軽めの仕事をいくつか提供できるよう努力します

7.住人・関係者を募集します

以前ツイートした内容からすでに数人の方からご連絡をいただいていますが、BIハウスに興味を持っていただけた方は

  • 住みたい
  • 仕事を頼みたい
  • 使えそうな物件を提供するよ(もちろん家賃は払います)

という方は是非Twitterまたはこちらからご連絡ください。

最後までご覧くださってありがとうございました。

 

追記 2019/6/24 07:30

公開して一晩ですが

仕事を依頼したいという方:2名
住みたい・関わりたいという方:5名
からご連絡をいただきました。

全員の希望に沿うことは難しいかもしれないですが小規模な状態からスタートできるように調整して行きたいと思っていますので、もう少々お待ちください。

*1:理想を言えば、僕や 僕が仕事を頼んでいるエンジニアさんのように「好きなことをやっていて働いている意識は持っていないけれど、世の中に価値を提供している」=「好きなことで生きていく」みたいな状態の人が増えると良いなーと考えています。

*2:人材の最新動向と将来推計に関する調査結果