Paoの技術力を磨くブログ

機械学習やブロックチェーン等の技術を身に付けていくブログです。

2021年振り返り

Twitterで多くの人がやっていて、たまには振り返りも、ということで今年の振り返りをしたいと思います。 コンペ Kaggleは金x2 銀x3、atmaCupは1位と2位を1回ずつという結果でした。 atmaCupは満足行く結果で、Kaggleは結果というよりチームで戦っていく中で…

麻雀の危険牌を予測する part1 ~解釈性を添えて~

久々に麻雀AI関連のネタです。 続編を(脳内では)用意してるのでpart1としています。 ちょっとした背景 将棋や囲碁ほどではないですが、麻雀界で麻雀AIが最近少しずつ知名度が上がっています。 有名どころでは「爆打」や「NAGA」、「Suphx」あたりでしょう…

転職エントリ ~大企業と育児と年齢とKaggleとキャリア~

初めての転職をしました。 2020年4月末を持って新卒から7年間勤めた会社を退職し、今年の5月から新しい会社で働いています。 自分に境遇が近い人などの参考になればと思い、書きました。 長くなると思うので、お題毎に気になるところだけでも読んでもらえる…

atmaCup#2(オフラインコンペ)で優勝しました

先週末11/23に大阪で行われたatmaCupで優勝できたので、簡単に振り返りたいと思います。 なお、データの内容はNGでカラムや問題設定までは公開OKであるため、公開可能な範囲でのポエム記事になります。 atmaCupとは atma株式会社が運営をするデータ分析コン…

要注目?DeepGBM: ニューラルネット+GBDT(速報)

KDD2019のPaper一覧で気になるものがあったので紹介します。 ※記載時点でまだ論文公開、発表されておらず、こちら鮮度重視の記事です。 内容に誤りがある可能性は十分あるのでご了承ください。 DeepGBMとは データマイニングのトップカンファレンスKDD2019で…

【kaggle奮闘記】malwareコンペ〜天国と地獄〜

kaggleばっかりやっていてブログを更新していませんでした。 kaggleやってる最中に内容ブログに書くとルール違反になっちゃうのでなかなか難しいですね。。 先日までkaggleのmalwareコンペに参加していて、かなり頑張ったコンペだったので、振り返りがてら記…

【Kaggle】初コンペで上位1.5%に入るまでの道のりと振り返り【HomeCredit】

8月に、初めてKaggleのコンペに参加したので、その内容を振り返る。(もう1ヶ月たってしまった。。) 取り組んだ期間は8月上旬からの約3週間で参加した。 結果は7189チーム中97位。 目標が上位5%(銀メダル獲得)なのに対し、結果が上位1.5%以内だったので…

【Kaggle】HomeCreditコンペ上位入賞者の手法まとめ(メモ)

KaggleのHomeCreditコンペに参加しました。初めてのKaggleコンペ参加です。 HomeCreditコンペは、ローンの支払が出来たかどうかを予測するもので、Kaggleの中で過去最大の参加者数のコンペでした。 私は、7198チーム中97位(上位1.5%)でした! 目標を上位5%…

画像以外へCNN(畳み込みニューラルネット)を利用した研究を調べてみた

麻雀AIでCNN(Convolutional Neural Network: 畳み込みニューラルネットワーク)の構成を考えるにあたって、そもそも画像以外のCNNってどんなのあるんだっけ?と思い、簡単に調べた。 ゲーム関連 盤面を使ったゲーム(囲碁・将棋・チェスなど) 盤面が9x9や19x…

深層強化学習を用いた一人麻雀AIを作ってみた

最近はブロックチェーンまわりばかりだったが、 前々からやっていた麻雀AIの強化学習について一旦まとめておく。 麻雀好きの人から機械学習興味ある人まで読めるよう書いたみたけど、どうでもいいとこは飛ばしながら、分からないとこあれば気軽にコメントく…

【Ethereum】ブロックチェーンのじゃんけんdAppゲームを作ってみた

ブロックチェーンを使ったジャンケンゲーム(デモ)のdAppを作りました。 ゲーム自体はジャンケンなので大して面白くないですが、 ジャンケンというゲームがブロックチェーンの特性理解およびdappsの勉強になるいい題材と思ったため ジャンケンのゲームを作…

【Ethereum】Gethで起動したプライベートネットをMetaMaskと連携

開発時にGethから立てたプライベートネットでのテストでもRopstenのようなテストネットやメインネットを想定して、 MetaMaskからアクセスできるようにしておいた方がいいと今更ながら思ったので、その対応のメモ。 特に難しい話ではないけど。 Gethのインス…

【Ethereum】Solidityでの例外処理(require,revert)でエラーメッセージを出力する

日本語での情報があまりなかったので書いておく。 Solidity0.4.22より、require()やrevert()による例外処理でエラーメッセージが出力できるようになった。 記述方法 require(条件, メッセージ); revert(メッセージ); 具体例(require) require(msg.value % 2 …

CryptoZombiesを一通りやってみて。。。

EthereumでのdApp開発の学習ツールとして有名な「CryptoZombies」を一通りやってみました。 (今出ているLesson6まで) cryptozombies.io 「CryptoZombies」はEthereum上に独自ネットワークを開発しているLoom Network社が提供しています。 「CryptoZombies…

【Ethereum】スマートコントラクトのベストプラクティスについてまとめる②

前回分はこちら pao2.hatenablog.com 続きを書きます。 既知の攻撃方法 Race Conditions 最も有名な攻撃の一つ。 DAO事件もこれ。 いくつかのパターンがあるのでそれを紹介する。 Reentrancy メソッドの最初の呼び出しが終了する前に、fallback関数により、…

【Ethereum】ERC20トークンで発生した脆弱性「batchOverflow」について

つい最近話題になった「batchOverflow」についてホットなうちにまとめる。 参考 イーサリアム基盤ERC20トークン“重大バグ”発見|ポロニエックスほか複数の大手取引所取引停止 | 仮想通貨まとめ まぁ重大バグではないが。。 要約 ERC20トークン自体の脆弱性で…

【Ethereum】スマートコントラクトのベストプラクティスについてまとめる①

Ethereumでのスマートコントラクト開発、すなわちSolidityでのプログラミングでは、かなりしっかりとしたコーディングをすることが求められる。 なぜなら、 一度ブロックにデプロイしたコードは変更できない 悪意のある人の攻撃により資産を盗まれる可能性が…

【深層強化学習】Chainerrlのa3cのモデル定義で入力チャネル数でNoneは使わないこと

急にテーマが代わり、強化学習の話。 しかも、かなりニッチな話。 深層強化学習のライブラリとして「Chainrrl」を使っている。 「Chainrrl」はPreferred Networksが提供しているChainerを使った深層強化学習ライブラリ。 新しい手法とかも実装されているので…

【Ethereum】スマートコントラクト開発の基本用語をまとめる

今まで勉強してきた基本的な内容をまとめておきます。 かなり省略気味です。 PlasmaやCasper, RaidenNetworkなど、今後のEthereum内の技術は一旦置いときます。 (あくまでスマートコントラクト開発ということで) Ethereum ブロックチェーン 技術を活用した…

ブログ始めました。

はじめまして Paoといいます。 はてなブログを始めました! エンジニア系のブログです。 簡単にブログを書く目的と自己紹介を書いておきます。 自己紹介 30歳前後 関東在住 情報通信系の大企業勤務 もうすぐ子持ち 関わってきた分野:VR(大学の修士)、Web…