機械学習エンジニアの備忘録

主に自分が勉強したことのメモ

Dockerコンテナ実行時に standard_init_linux.go:219: exec user process caused: exec format error が出る

alpineをベースイメージとしてDockerfileの最後でCMDやENTORYPOINT等でシェルスクリプトを実行したときに以下のようなエラーが出た。 環境はmacOS Catalina 10.15.7、Docker desktop3.1.0 standard_init_linux.go:219: exec user process caused: exec forma…

【Kaggle】鳥コンペ振り返り

はじめに 先日終了したKaggleのCornell Birdcall Identificationに参加し、1390人中122位(Top9%)で銅メダルを獲得することができました。 www.kaggle.com本記事では自分のソリューションと上位陣のソリューションを簡単にまとめておこうと思います。 コンペ…

Pytorchを使っているときにlossがnanになったときに確認すること

pytorchでモデルを学習させているときにlossがnanになって時間を結構溶かしたのでメモ。 BCEではなくBCEWithLogitsLossを使っているか 2値分類問題で自分で最終レイヤをいじったモデルはnanにならなくてOSSのモデル実装を使うとなぜかnanになる現象にぶちあ…

Github + Amazon ECR + CircleCIで独自のdocker image上でpytestを自動実行する

はじめに CI/CD環境を構築するためにしばしばJenkinsが使われますが、Jenkinsは運用・メンテナンスが面倒だったりGUIベースの設定なのでノウハウが属人化してしまいがちであるという課題があります。そこで、SaaSを使ったモダンなCI/CD環境を作りたいという…

アンサンブル学習 アルゴリズム入門 〜〜プルーニング〜〜

前回の記事では、決定木による機械学習プログラムを作成しました。rikeiin.hatenablog.comこの決定木では、作成する木の深さに上限がなくパラメータの設定を深くすればするほど複雑なモデルが作成できます。なので、単に学習データをよく再現できるモデルを…

kubernetesでsshできるpodを作る

普段自分は機械学習の研究用途でkubernetes (k8s)上のクラスターでjupyterlabを立ててそこでコーディングをしています。 なんですが、jupyterlabだと補完がいまいちだったり、pyファイルの編集においては補完が全く効かなかったりで何かいい方法はないか模索…

アンサンブル学習 アルゴリズム入門 〜〜決定木その2〜〜

前回記事からの続きになります。 rikeiin.hatenablog.com前回の記事で作成したDecisionStumpは、深さが1の決定木でしたが、同じ方法によるデータの分割を再帰的に行えば、より深い階層を持つ決定木が作成できます。この記事では先ほど作成したDecisionStump…

アンサンブル学習 アルゴリズム入門 〜〜決定木その1〜〜

アンサンブル学習とは アンサンブル学習とは、複数の機械学習モデルを組み合わせて使用するタイプの機械学習アルゴリズムのことです。 Kaggleのようなデータ分析コンペティションでもよく使われているLightGBMなどもアンサンブル学習アルゴリズムの一つです…

Kaggleの網膜コンペで銅メダルをとったので振り返る

Kaggle で開催されたAPTOS 2019 Blindness Detection(網膜コンペ)にソロで参加したのでその振り返りです。www.kaggle.com結果は174th/2943 (TOP6%)で銅メダルでした。このコンペで2枚目の銅メダルを獲得し、Kaggle Expertになることができました。 コンペ…

docker imageの保存先を変更する

最近自分はdeep learningやデータサイエンスの環境構築も基本的にdockerで行うようにしています。 dockerfileさえあれば他のVMでも簡単に同じような環境が作れるので重宝しています。しかし、docker imageって何気にサイズがでかいのでストレージの容量がす…

pytorchでレイヤーをフリーズさせる

画像分野で深層学習を用いる際はImageNetのような大規模データセットで学習した学習済みモデルを使用して転移学習、ファインチューニングを行うことが一般的です。 このファインチューニングを行う際に、最初の数エポックはモデルの最終層以外の重みを固定し…

jenkinsとgithubを連携して自動テストをする

web上にいろいろ情報が錯綜していていろいろハマったので成功したやりかたをメモしておく やりたいこと githubに新しいcommitがpushされるごとにそのソースコードをビルドしてテストする テスト結果をgithub上から確認できるようにする github側の設定 ビル…

fastaiのバージョン0.7をインストールする

fastaiという無料でディープラーニングについて学べる講座がありますが、その講義の中でfastaiというライブラリが使われています。 github.com このライブラリはpytorchのラッパーのような形になっており、実際にディープラーニングをする上でのベストプラク…

Hash Tables (Cousera Data Structure Week 4)

CouseraのData Strucureコースのweek4の内容です。 www.coursera.org前回のweek3の内容の記事はこちら rikeiin.hatenablog.comWeek4の内容はHash Tablesです。 Hashingの応用例 プログラミング言語 Pythonでは辞書、 JavaではHashMapなど File Systems Passw…

Disjoint Sets (Cousera Data Structure week3)

CouseraのData Strucureコースのweek3の内容です。 www.coursera.org前回のweek3の内容の記事はこちら rikeiin.hatenablog.com Disjoint-set Disjoint-setは以下の操作を持つデータ構造である MakeSet(x):集合{x}を作る Find(x):xを含む集合のIDを返す も…

Priority Queues (Cousera Data Structure week3)

CouseraのData Strucureコースのweek3の内容です。 www.coursera.org前回のweek2の内容の記事はこちら rikeiin.hatenablog.com Priority Queues (優先度付きキュー) Priority Queueは通常のキューに格納されている要素に優先度がついたデータ構造である。 C+…

海外では「技術面接の突破法」なんて授業がある

最近Rui Ueyamaさんのturingcomplete.fmを聞いて初めて知ったんですが海外の大学では「技術面接の突破法」なんて授業があるんですね。 技術面接っていうのはいわゆるプログラミングなどコーディング面接です。 13. 自作アセンブラ、リンカの最適化、トリッキ…

Dynamic Array (Cousera Data Structures week 2)

前回の記事に引き続き、CouseraのData Structuresコースのweek2講義のメモです www.coursera.org 前回のweek1の内容の記事はこちら rikeiin.hatenablog.com Dynamic Arrays 通常の静的な配列と異なり、Dynamic Arrayは後から配列のサイズを増やすことができ…

Basic Data Structure (Cousera Data Structures week 1)

久しぶりのブログ更新になります。やはり仕事が忙しいなかなか勉強の時間がとれませんね。。 さて今回からcouseraのdata structures コースをやって行きたいと思います。 www.coursera.org やはりソフトウェアエンジニアを目指すならデータ構造の知識は必須…

ubuntu14.04にGTX1080のドライバとCUDA8.0を入れてChainerを動かすまでの最速手順

もうかれこれ何回もこのセットアップ作業を行っているので手順を記しておく。 Ubuntu14.04のインストール インストールディスクから普通にインストール。 このあとにドライバやcudaのインストールを行っていく際にGUIから離れて黒画面でコマンド操作をしてい…

Windows環境のTeXstudio設定メモ

TeXエディタであるTeXstudioを使うときに初期設定だと日本語環境でコンパイルがうまく行かなかったのでメモ TeXstudio/設定 - TeX Wiki 設定方法は上のリンクに書いてあるが、それでもうまく日本語を含むTeXファイルをコンパイルできなかった。 いろいろ調べ…

【感想・書評】世界でもっとも強力な9のアルゴリズム

今日、至る所にコンピュータが浸透し、また私達自身もスマホという名にコンピュータを日常的に使っている。そして、我々は何気につかっているコンピュータやインターネットでどのようなアルゴリズムが動いているかを全く意識せずに使うことができる。 今回紹…

野村総合研究所選考体験記(2017卒)

3月15日 NRI career cafe このイベントは座談会形式の説明会でした。小さな会議室に就活生は25人ほど集められ、社員の方は司会含めて7人いました。 まず最初に簡単な会社説明と社員の自己紹介をスライドを使って30分ほど説明がありました。 NRIの事業は主に…

ゴールドマン・サックス選考体験記(2017卒)

ゴールドマン・サックスは言わずと知れた外資系投資銀行の一つですね。ここは部門別選考を行っており、併願もできます。今回私はテクノロジー部門の選考を受けてきました。GSの特徴はトレーディングのシステムから社内のチャットツールまでほぼ全て自分たち…

ソニー選考体験記(2017卒)

技術ジョブマッチング 4/16 品川本社。大量の就活生がいた。広い部屋にブースが作られており、そこで1:1で面談。 ホワイトボードで研究の説明。志望動機。ソニーに入ってなにがやりたいか。最近興味を持っている技術分野。なぜそれに興味があるか。他にど…

日本マイクロソフト選考体験記

マイクロソフトはWindowsやOfficeシリーズなどでお馴染みのグローバルIT企業です。 日本マイクロソフトの事業は主にマイクロソフト製品の営業・マーケティングとSIerのようなソリューション事業のようです。また、開発も少ししており、こちらはマイクロソフ…

ソフトバンク新卒LIVE2017に行ってきました

みなさんこんにちは。GWも明けて内々定を貰った就活生も多いのではないでしょうか。かく言う私も希望していた企業から内々定を頂いて今はもうほとんど就活していません。 さて、今日5/11は孫正義社長の講演が行われるソフトバンク新卒LIVE2017に行ってきまし…

PythonでヤフーファイナンスをスクレイピングしてATRを計算するスクリプトを書きました

ATR(アベレージ・トゥルー・レンジ)とはワイルダーが考案したボラティリティー(変動率)を計るテクニカル指標です。トゥルー・レンジを使うことでギャップ(窓)も考慮しています。 ATRが大きいほど株価の変動が激しくなるので、株式の売買判断をするときに…

Deloitte Analyticsの一次選考に行ってきました

みなさんこんにちは。 最近寒い日が続いていますね。体調管理をしっかりして頑張っていきましょう。 さて、タイトルの通りDeloitte Analytics(デロイトアナリティクス)の一次選考に参加してきました。今回はその選考の内容について書きたいと思います。少し…

すべて就活生はこれを読め!?「コンピテンシー面接マニュアル」

みなさんこんばんは。 もうすでに外資系企業の新卒採用や日系企業の春インターンの選考が始まっていますね。みなさんもこれから採用面接に参加することも多くなると思います。 ところで皆さんは面接対策などをしていますか?webにも様々な情報がありますがど…