ハイエンド PC が無くても Paperspace で手軽に MMD 動画を作成する

概要 MikuMikuDance (MMD) は樋口優さんが開発されたフリーソフトで、 3D モデルに動きを付けた動画を簡単に作成することができます。 MMD でクオリティの高い 3D モデルを扱ったり高解像度の動画を出力したりする場合には GPU を積んだ高性能な PC が必要に…

にじさんじマイクラ鯖を企業として管理するのは本当に規約違反か?

概要 VTuber グループの「にじさんじ」には、ライバー専用の大規模な Minecraft サーバー(通称にじ鯖)があります。にじ鯖は会社側で管理しているわけではなく、ライバーのドーラさんが自費で管理し善意で無償提供しているものです。 これに関して「Minecra…

Doneru についてのまとめ

概要 Doneru とは「Twitch・YouTubeのライブ配信者を支援する拡張プラットフォーム」で、 YouTube のスーパーチャットと類似した投げ銭機能などがあります。 この Doneru を、 VTuber 事務所「にじさんじ」に所属するライバーが使用したことがきっかけとなり…

BERT 日本語モデルの実験

概要 BERT (arxiv, GitHub) を理解するための第一歩として、訓練済み日本語モデルを fine-tune して文章のトピック分類の実験をしました。 この記事に含まれない内容: BERT の説明 この記事に含まれる内容: 訓練済み BERT 日本語モデルのまとめ 環境構築や…

にじさんじの Twitter フォロワー分析

概要 にじさんじに所属する全ライバーの Twitter フォロワー情報を取得し、 にじさんじ全体の(重複を除く)フォロワー数 1人のファンがフォローするライバー数の分布 フォロワーの重複度合いを基に(t-SNE で)図示したライバーの位置関係 を分析しました。…

万能な情報整理アプリ Notion のレビュー

Notion は、メモやタスク管理、その他情報を整理するための Wiki やデータベースとして使える万能なアプリです。Notion を一ヶ月ほど使用してみてわかった利点や欠点をまとめて記事にしました。 はてなブログにアニメ gif を貼ろうとして失敗したので、Notio…

PySnooper の中身を覗く

概要 こちらのブログ記事で、 PySnooper というデバッグ用の Python ライブラリが紹介されていました。 どんな仕組みで実装されているか気になり、またソースコードの行数も大したことがなかったので、実際に中身を覗いてわかったことをこの記事にまとめます…

AtCoder Beginner Contest 125

A - Biscuit Generator a, b, t = [int(a) for a in input().split()] result = ((t + 0.5) // a) * b print(int(result)) B - Resale n = int(input()) V = [int(a) for a in input().split()] C = [int(a) for a in input().split()] diff = [v - c for v,…

つくってまなぼう 自動微分 (Automatic Differentiation)

導入 ADの中心的なアイデア 微分の連鎖律 動的計画法 評価順序 Forward-mode (bottom-up) AD Reverse-mode (top-down) AD つづく 参考文献 導入 機械学習で予測問題(Regression や Classification)を解くステップは、大きく以下のように分解することができ…

AtCoder Tenka1 Programmer Beginner Contest 2019

A - On the Way a, b, c = [int(n) for n in input().split()] x = min([a,b]) y = max([a,b]) if x <= c and c <= y: print('Yes') else: print('No') B - *e**** ********e* *e****e* ****e** n = int(input()) s = input() k = int(input()) a = s[k - 1]…

AtCoder Beginner Contest 124

A - Buttons a, b = [int(x) for x in input().split()] c = max([a, b]) if c == a: d = max([a - 1, b]) else: d = max([a, b - 1]) result = c + d print(result) B - Great Ocean View スケールがしょぼいので超素朴に解く。 計算量 n = int(input()) h …

LAPRAS株式会社でインターンを始めました

概要 LAPRASを選んだ理由 広報記事の内容に説得力が有る 組織体制がおもしろい インターン選考 現在までにやった仕事 取り組んだ課題 仕事の方法論 LAPRASにインターンとして入った後の印象 オープンであれ エンドユーザーファースト 最後に 概要 2019年3月2…

Google Place APIで住所や地名のデータを構造化する

概要 Google Mapの検索機能は、人がある程度大雑把に地名を入力しても正確な住所を返してくれます。これを利用すれば、人が生成した住所や地名の膨大なデータを、プログラムや機械学習で扱いやすいように構造化することができます。この記事では特に、 Tokyo…

古いSteamアカウントを乗っ取られかけた話

経緯 一昨年のある日、Steamから以下のようなメールが届きました。 Dear {ユーザー名}, Here is the Steam Guard code you need to login to account {ユーザー名}: {Steam Guard コード} This email was generated because of a login attempt from a web o…

YouTubeの収益化解除問題

実際に目にした問題 Adpocalypseの経緯 Adpocalypseの影響 広告以外での収益化手段 サブスクリプション収入 Super Chat スポンサー契約 グッズ販売 最後に 実際に目にした問題 私は趣味の一部として中世ヨーロッパの武器や戦争に興味があって、YouTubeでそう…

トレンドマイクロのインターンに参加しました

概要 2019年の1月16日~18日に、トレンドマイクロの短期インターンプログラム「ガーディアンプロジェクト」に参加しました。 内容はサイバー攻撃に対するインシデントレスポンスの演習です。文理混合の5人チームを組んで、以下のような流れで進められました…