pyhaya’s diary

機械学習系の記事をメインで書きます

BERTによる日本語文書分類

自分の備忘録的な感じで雑にまとめます。やることは単純に自然言語からその文書のカテゴリーを分類するタスクです。テーマ的には新しいものでもなく、すでにたくさんの良記事がある分野なので、詳しく説明するというよりやったことと結果を淡々と書いていく…

新卒データサイエンティストが 1 年目にやったこと

私は 2022 年 4 月にウォンテッドリーに新卒として入社しました。私は大学時代は実は物理学を専攻していたため、仕事は最初は慣れないことばかりで苦労しました。そこで、新卒 2 年目に入って少し落ち着いたタイミングで 1 年間の業務内容を振り返り、この記…

論文の再現実験: Neural Graph Collaborative Filteringを実装してみた

本記事では「Neural Graph Collaborative Filtering (NGCF)」と呼ばれる、グラフ構造を使った推薦システムの手法を自分で実装して論文の再現実験をしてみたことについて書きます。近年の推薦システムの研究では、ユーザーとアイテムの特徴量だけでなく、ユー…

データサイエンティストがOSSにコミットしてみた話

OSSにコミットしてみたいと考えて、見つけたデータ分析ツールにコミットすることができたのでその体験談みたいなことを書きます。 SPyQLというツールの紹介 どうやって見つけたか どうやって作業を進めていったか について書こうと思います。 イントロ SPyQL…

flutter build apkしたら~/.gradle/caches/transforms-3/... (そのようなファイルやディレクトリはありません)と怒られた話

タイトルのとおりですが、flutter buildができなくなりました。きっかけはbuild時に 「~/.gradle/caches のバージョンが〜」というwarningが出ていたのでcacheディレクトリだから消せばいいかと考えて消したことでした。ネットで情報を探していると ~/.gradl…

実験タスクでのデータ管理をちょっと改善した話

TL;DR 背景 ナイーブな解決策と問題点 自分が考えた解決策 他の手法との比較 補足 実際にダウンロードする際に使うコード TL;DR 実験した結果をクラウドストレージから手元に落として来て分析するときに、ファイルが多いといろいろ辛みがあった。スクリプト…

「因果推論の科学」を読んだ

最近話題になっていた「因果推論の科学」という本を読んだので感想みたいなものをつらつら書いてみました。 簡単にまとめると データは何も教えてくれない データの生成過程を知ることの重要性 モデルを作る難しさ 感想 因果推論の科学 「なぜ?」の問いにど…

「ベイズ統計モデリングによるデータ分析入門」を読んだ

ベイズを勉強してみたいと思って本を探していたら、こちらの「RとStanで始めるベイズ統計モデリングによるデータ分析入門」がわかりやすいと評判だったので買ってみた。実践Data Scienceシリーズ RとStanではじめる ベイズ統計モデリングに…

Docker for Windowsがストレージを解放しない問題

Docker for Windowsにおいて、イメージを削除してもディスクの容量が解放されないという問題があるらしい。私の環境でも確認してみたら、Dockerが50 GBほどの容量を使っていることがわかった。コンテナは毎回使うごとに消しているし、volumeやnetworkを dock…

SRGANで画像の高解像度化

今回はGANを使った初期の画像の高解像度化モデルであるSRGANを実装してみたので紹介したいと思います。 実行環境 SRGANとは モデルの実装 トレーニングの実行 Generatorのトレーニング GANの訓練 訓練結果 実行環境 今回のモデルは以下のような環境で実装し…

Django + Plotly.js でグラフをリアルタイム更新

最近、測定器からデータを取得してリアルタイムにデータを表示して確認したいという願望があってそれを実現する方法を考えてました。その1つの解決策としてDjangoを使ってWebアプリケーションのような形で実現する方法を思いつき、試しに作ってみたのでそれ…

Raspberry Pi 4 に Ubuntu Desktop を入れる

Raspberry Pi 4 に Ubuntu Desktop を入れるときに苦労したので備忘録として書いておきます。最近、Raspberry Pi に OSを入れるためのアプリケーションとして Raspberry Pi Imager が出てきて簡単に SD カードをフォーマットしたり OS をSD カードに入れられ…

データベースの学習環境をDockerで作った話

データベースの勉強をするときに書いたクエリを実際に試すことはとても重要ですよね。しかし、私はこれまで書いたクエリを試すための環境構築が面倒で下のサイトを利用して SQL を実行していました。 www.db-fiddle.comこのサイトはとても便利なのですが、毎…

Python + Docker でデータ解析環境の管理

今回は実験データ自体の解析の話ではなく、どのような環境で解析を行ったのかという「環境」の管理について書きたいと思います。大学などで研究をしていて論文としてその成果をまとめる場合、関連するデータや解析プログラムは所属する大学もしくは研究室に…

GCP の Credential の読み込み

Google Cloud Platform では認証情報をJSON形式などでダウンロードすることで外部のアプリケーションから BigQuery などのサービスにアクセスすることができます。しかし、認証情報を読み込ませるのに苦労したので解決までのメモを残しておきます。 環境 Ubu…

Django で Chart.js を使ってグラフを描く

Django は Python を使うことで簡単に Web アプリケーションを作ることができることから非常に人気のあるフレームワークです。しかし、高度なアニメーションなどは Python だけでは表現することが難しく、JavaScript の力を借りることが多い印象を受けます。…

GraphQL から GitHub API を叩く

最近、GitHub API を使ってリポジトリ情報を取ることが多いのですが、REST API より GraphQL を使ったほうが必要な情報だけを一気に取れるということを耳にし、試してみることにしました。 作業環境 準備 Query を作成 Query を実行する まとめ 作業環境 Ubu…

Django でログインページを作る

Python のフルスタックWebフレームワークとして有名な Django を使ってログインページを簡単に作ってみます。 開発環境 準備 雛形の生成 基本的な設定 内部ページの実装 ログインページの実装 実行してみる 開発環境 Ubuntu 20.04 Python 3.8.2 Django 3.1.1…

Python から PostgreSQL を操作する

Python はデータの解析で使われることが多く、様々な記事で解析の方法や結果の可視化手法が紹介されています。多くの記事では構造化データを扱う例として CSV を pandas を使って解析していますよね。しかし、扱うデータが非常に多い場合にはデータベースを…

AtCoder Beginners Contest 128 C. Switches を解いたのでメモ

久しくブログを更新していなかった気がするので、AtCoder の過去問を解いた記録でも書いてみる。AtCoder Beginners Contest (通称 ABC) 128 の C 問題を解いてみたら再帰関数の良い練習になったのでこれを紹介します。 解答環境 解く方針 コード Step 1 Step…

Union Find 木の実装

最近 AtCoder の過去問を解いていて、Union Find 木を使うと解くことができる問題に出会いました。これまで Union Find 木は使ったことがなく、聞いたことがあるくらいだったのでこの問題を解くために勉強しました。この記事では Union Find 木がどのような…

fast.ai をサクッと動かす

機械学習のブーム到来によって、今までに様々なフレームワークが開発されてきました。有名なのは Google が開発している Tensorflow と Facebook が開発している PyTorch ですね。さらにこれらのフレームワークを手軽に試せるようなフレームワークも次々と登…

fastai の Deep Learning 本(Draft)を実行する環境をGCPでそろえる

最近、fastai が深層学習の本のドラフトを GitHub で公開して話題になりました。 github.com中身を見てみると、Jupyter Notebook 形式で書かれており、説明を読みながらその場で実行することが可能になっておりすごく便利そうです。この記事では、この良質な…

Rust で テキストファイルからデータを読み出す Python 拡張を書いたら爆速だった話

普段、実験をしていて得られるデータを np.loadtxt で読んでいるが、ためしにこの部分を Rust で書いて Python から呼び出してみたら速かったという話を書きます。 環境 準備 コード 速度比較 まとめ 最近こんな記事を書きました。 pyhaya.hatenablog.com こ…

Dell XPS 13 7390 のレビュー

XPS 13 7390 が届いたのでざっくりとレビューしてみます。外見の比較対象として今まで使っていた Dell Inspiron 13 7000 series を出しています。(2019/09/29 追記)ストレージテストと Core-i7 10510U のパフォーマンステストの結果を載せました 仕様 見た…

(速度比較) Rust でテキストファイルからデータを読み出す

Rust を使って、テキストファイルを開いて中のデータを読み出すということをやってみます。Rust では読み込み方法がいくつもあるのでそれの比較と、普段私が使っている Python の numpy.loadtxt との比較も行っていきます。 環境 読み込むデータ Rust でテキ…

Wantedlyでエンジニアインターンした話

この夏、初めてエンジニアとして就業型のインターンに参加したので感想を書いてみます。 Who am I ? なぜWantedlyでエンジニアインターンをしたのか 正式にインターンが決まるまで インターン本番 課題 ルールベースの改善 画像ベースの改善 日常生活 ランチ…

Rustで練習がてら簡単な切符の予約システムを作ってみる

最近、Rustを始めました。しばらくはドキュメントを見ながら勉強していたのですが、飽きてきて、何か作りたいなと思い始めたので、(すごく)簡単な切符の予約システムを作ってみました。まだ初心者なのでGUIで操作できたり、コマンドラインで引数を与えて実…

Tensorflowを使ってUNetを試す Version 2

UNetを構築してみようVersion 2です。 Version2? Tensorflowの変更点 モデル 訓練した結果 リンク(GitHub) Version2? 実は過去にTensorflowでUNetを書いた!という記事を書いています。。。 pyhaya.hatenablog.comなぜ同じ内容をもう一回書くのかというと、T…

TensorFlowでUNetを構築する

この記事では、Tensorflowを使ってUNetを構築し、最終的には画像から猫を認識するように訓練するやり方を紹介します。(この記事で紹介しているコードはTensorflow2系では動作しません。2系でも動くコードは別記事にしたので良かったら読んでください Tensor…