タグ

ブックマーク / qiita.com (1,095)

  • 代理モデルによる機械学習モデルの説明 - Qiita

    はじめに 代理モデル (surrogate model) とは複雑な機械学習モデル(e.g., DNN, GBDT)を近似する簡単なモデル(e.g., パラメタ数の少ないDNN, 単純決定木, etc)のことを指します.代理モデルは推論の高速化・機械学習モデルの説明などさまざまな用途に使われています. この記事では代理モデルによる機械学習モデルの説明をハンズオン的に紹介します.これは非常にシンプルかつ柔軟な手法ですが,アドホックな部分が多いためかハンズオン的な解説は見当たりませんでした.Christoph Molnar による Interpretable Machine Learning の Global Surrogate に概要は示されているので機械学習に詳しい人はこちらを読めば十分かもしれません.関連するライブラリに LIME や TreeSurrogate がありますが,わたしがこ

    代理モデルによる機械学習モデルの説明 - Qiita
    rydot
    rydot 2024/07/14
  • C# CODING GUIDELINES 2024 - Qiita

    このドキュメントについて 命名規則、コーディング規則を遵守して生産性を上げることを目的としています。 自分で書いたコードでも長い間メンテナンスしなければ他人のコードと同じです。 一定の規則に従い、読みやすく、バグの少ない、メンテナンスのしやすいコードを目指しましょう。 規約に従うことは、多くの問題を改善し、技術的負債を減らします。 書は、以下のページを参考にしています。 Microsoft Learn / .NET / C# / コーディングスタイル / C# 識別子の名前付け規則と表記規則 Microsoft Learn / .NET / C# / コーディングスタイル / 一般的な C# のコード規則 以下は、過去のものなので、最新の事情を反映していませんが、大部分は適用できます。 Microsoft Learn / .NET / フレームワーク デザインのガイドライン / 名前付け

    C# CODING GUIDELINES 2024 - Qiita
    rydot
    rydot 2024/06/29
  • 浮動小数点数の min / max - Qiita

    多くのプログラミング言語には、「2つ以上の数値が与えられた時、その最小値あるいは最大値」を返す関数 (min / max) が用意されている。入力が整数や有理数であれば難しい話はないのだが、対象が浮動小数点数の場合は厄介な問題が起こる。具体的には、「NaN の扱い」と「0 の符号の扱い」だ。 浮動小数点数の NaN は、皆さんご存知の通り、順序付けられない。NaN が絡む場合の min / max 演算については、「入力に NaN が含まれていたら結果も NaN とする」「NaN を入力の欠落として扱い、NaN でない入力があればそれを返す」などの立場が考えられる。 もっと細かいことを言うと、NaN を返す場合に入力で与えられた NaN を返すか、正規化された NaN を返すかという違いもありうるし、signaling NaN の扱いも議論の余地があるかもしれないが、この記事では細かいこと

    浮動小数点数の min / max - Qiita
    rydot
    rydot 2024/06/07
  • EMアルゴリズム徹底解説 - Qiita

    ブログは、混合ガウス分布を題材に、EMアルゴリズムという機械学習界隈では有名なアルゴリズムを丁寧に解説することを目的として書いています。 また、この記事は、「数学とコンピュータ Advent Calendar 2017」の24日目の記事です。 そして長いです。 1. はじめに 観測した確率変数 $X$ をよく表現する、モデル $p(x|\theta)$ のパラメータを求めることが確率分布の推定ではよく行われます。つまり最尤法ですね。より複雑な分布になるとその分布の構造に潜在変数(Latent Variable) $Z$ があると仮定してモデル化を行うと、シンプルな組み合わせで $X$ の分布を表現できることがあります。今回扱う混合ガウス分布もその一つです。 のちに説明しますが、データセットの種別を完全データ集合と不完全データ集合に分けた場合、不完全データ集合に属するようなデータセットはデ

    EMアルゴリズム徹底解説 - Qiita
    rydot
    rydot 2024/06/04
  • Git不慣れ勢を束ねて安全なチーム開発をするメモ - Qiita

    稿は当初チーム開発時のメンバー向けにまとめたものです。 ある程度、端折っていた背景などを記載しました。 git初心者同士でのチーム開発において、git操作を詳しく知らないメンバーも含め安全に行う必要がありました。しかし、開発期間はごくわずか...この状況を回避するために、下記の対応をとりました。 Gitコマンドの基礎的な内容を理解する(私) 各種操作をGUI上で完結させる拡張機能を色々と導入する シンプルな開発フロー(Github flow)を採用し、コマンド実行に相当する操作を限定する 各操作をGUI上での操作に置き換え、チームメンバーに教える 稿はその際の、コマンドやGUI操作に関するメモをまとめたものになります。 こういった取り組みのおかげか、チームの開発をすんなりフローに乗せることができました。 ■ 前提条件 対象とする動き Github flowを回すうえで、 cloneする

    Git不慣れ勢を束ねて安全なチーム開発をするメモ - Qiita
    rydot
    rydot 2024/05/23
  • 驚くほどキレイな三次元シーン復元、「3D Gaussian Splatting」を徹底的に解説する - Qiita

    はじめに 最近、3D業界で大きな衝撃を与えた「3D Gaussian Splatting」1について、ご存知でしょうか?数少ない写真から、目を奪われるほど美しい三次元シーンを再構成できるデモを見て私も大感動しました。なぜこんなに美しいのか、どんな技術で実現したのか、興味が湧いています! "普通の3D物体ではなく、カメラの移動に合わせて、水面に映る景色も正確に表現しています。これはなかなか凄い..." 私も時間をかけて論文や公開されたコード2を勉強しました。家の実装はCUDA化されており、難解な部分が多く、論文に書かれていないこともあります。そのため、「3D Gaussian Splatting」を勉強したい人にむけ、わかりやすい解説記事を書こうと思いました。単に概念や考え方だけでなく、ゼロから再実装できるように、すべてのロジックを数式として整理し、徹底的に解説しようと思います。 「3D

    驚くほどキレイな三次元シーン復元、「3D Gaussian Splatting」を徹底的に解説する - Qiita
    rydot
    rydot 2024/05/22
  • 量子コンピューター超入門 - Qiita

    量子コンピューターの初歩の初歩を説明します。数学的準備を最低限に留めるため、簡略化した表記法を採用して、基原理の直観的理解を目指します。前提とするのは 2 進数のビット演算と中学数学で、量子力学の知識は前提としません。blueqat ライブラリによる検証法も説明します。 シリーズの記事です。 量子コンピューター超入門 ← この記事 量子コンピューター超入門2 一般的な表記法 はじめに 量子コンピューターは革新の可能性を秘めた分野です。しかしながら、量子力学に基づくため、その動作原理を理解するのは容易なことではありません。 量子力学では複素数による確率振幅の重ね合わせ、量子もつれ、測定による量子状態の収束など、古典物理学とは全く異なる概念が導入されます。これらを厳密に記述するには、大学レベルの数学が必要になります。こうした複雑さは量子コンピューターを理解する上で障壁となります。 記事では

    量子コンピューター超入門 - Qiita
    rydot
    rydot 2024/05/07
  • PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita

    記事で言及しているReflexのdiscord内に日語チャンネルをつくってもらいました。もし、興味をもった人がいたら参加してみてください。 1.PythonだけでWebアプリをつくるライブラリが増えている 最近(2024.05)、Python界隈ではPythonだけでWebアプリが作れるライブラリが増えています。詳しくは他の記事を参照してもらえればと思います。 以下の記事がとても参考になりました。ありがとうございます。 2.ライブラリの分類 こうしたライブラリも大きくわけて2つの種類があるように思います。 ①データ解析の結果を表示するダッシュボードライブラリ ②汎用的なWebアプリをつくるローコードライブラリ ①ダッシュボード系ライブラリ たとえば、上記の記事にも出てきますし、ネットでもかなり情報の多い、StreamlitやDashは項番1のダッシュボードライブラリに該当すると思いま

    PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita
    rydot
    rydot 2024/05/07
  • なぜ管理職は罰ゲームなのか。 - Qiita

    はじめに タイトルでお察しかと思いますが、今回は「罰ゲーム化する管理職」の著者である小林祐児さんがPIVOTのYoutubeチャンネルに出演されており、そちらの内容が非常に素晴らしかったので、管理職の課題や対策について、記事にまとめたいと思います。 また、途中で出す資料はパーソル総合研究所の中間管理職の就業負担に関する定量調査からお借りしています。 中間管理職の課題 部下育成が不十分、後継者不足 働き方改革が進んでいるもの、現在の管理職は人手不足・ダイバーシティ・ハラスメント対応・人手不足などによって業務量が増加。 管理職人の負担が増えている他、部下育成と後任者の不在という課題も抱えている。 昨今の働き方改革やハラスメント対応などにより、管理職の業務量は増加傾向にあります。 小林さんに言わせれば、「働き方改革は一般層の働き方改革」であって、それによって管理職の首を絞めていると。 業務量増

    なぜ管理職は罰ゲームなのか。 - Qiita
    rydot
    rydot 2024/05/06
  • パワポのスライドと箇条書きが人間を駄目にする - Qiita

    パワポのスライドと箇条書きが人間を駄目にする 今から20年前の2003年、データの可視化やインフォメーションデザインの先駆者として有名なイエール大学の教授エドワード・タフティが「パワーポイントの認知スタイル」というエッセイを発表しました。 彼はこのエッセイの中で、パワーポイントのようなスライド形式はプレゼンテーション自体の質を低下させ、余計な誤解や混乱を招き、さらに言葉の使い方、論理的な説明、そして統計的な分析といったものが犠牲になるため、スライドをつくる人の思考回路にダメージを与えると主張します。 こうした主張に賛同する人は現在でも多くいて、その典型的な例がアマゾンです。アマゾンではミーティングの前に文章形式の資料が配られ、ミーティングの最初の5分はそれぞれがこの配られたレポートを黙って読むことから始まるという話は多くの方も聞いたことがあるのではないでしょうか。(リンク) 実は、アマゾン

    パワポのスライドと箇条書きが人間を駄目にする - Qiita
    rydot
    rydot 2024/03/20
  • どうしてあなたの共通化は間違っているのか:目次 - Qiita

    はじめに この連載では共通化とモジュール分割について扱います。この話題においてQiitaで有名な記事のひとつが@MinoDrivenさんの単一責任原則で無責任な多目的クラスを爆殺するでしょう。この記事を未読の方はまずこちらを読むことをお勧めします。連載では、この記事に書かれているような基礎的な事項については既知であることを前提に、どのようにすれば単一責任原則にそったモジュールの分割を行うことが出来るのかをなるべく 「場合による」という言葉に逃げずに なるべく 網羅的・理論的に 解説します。 いいね、ストックをよろしくお願いします。 対象読者 設計に興味のあるエンジニア 基礎的な設計原則について学んだものの、実際の場面でどのように応用すればいいのかが掴めないエンジニア ミクロな設計についての知識を増やしたい人 ※この記事では、特定のメソッドをどのように作成するべきか、このクラスは複数の処理

    どうしてあなたの共通化は間違っているのか:目次 - Qiita
    rydot
    rydot 2024/03/20
  • いつか起業したいエンジニアへ - Qiita

    はじめに 34 歳のとき、勤めていた会社の経営が傾き早期退職を促されたのを契機に独立しました。その後、41 歳で Authleteオースリート 社を設立しました。諸般の事情で現在も Authlete 社の代表取締役という肩書きを持っていますが、経営者的な仕事は他の人に任せ (参照: シリコンバレーのプロフェッショナル CEO を迎えて米国市場に挑戦する日のスタートアップの話)、50 歳目前の現在もプログラマとしてコードを書き続けています。 Authlete 社設立 (2015 年 9 月) から 8 年半弱経過したものの、まだまだ小さな会社で道半ばであるため、起業家として何か語るのは時期尚早ではあるものの、軽い体調不良が長引く中、『自分のエンジニアとしてキャリアを振り返ろう!』という記事投稿キャンペーンを見かけ、生きているうちに子供世代のエンジニアの方々に何か書き残しておこうと思い、文章

    いつか起業したいエンジニアへ - Qiita
    rydot
    rydot 2024/03/04
  • モダンなC++におけるコンパイル時間削減のテクニック - Qiita

    はじめに C++は他の高級言語と比べると、run-time性能で優れています。C++11、C++14ではテンプレートを使ったテクニックが多く登場し、静的型言語特有のデメリットを大きく解消することとなりました。 しかし... ... ... ... ............. 遅い!!! コンパイルが終わらない!!! 複雑なテンプレートテクニックを使用したライブラリとかだと、どうしてもコンパイル時間が肥大化してしまう。 というわけで今回は、C++11以降の「モダンなC++」においてコンパイル時間を削減させるテクニックをいくつか紹介します。 対象となる読者 C++のテンプレートや共有ライブラリを使用した経験があり、C++の優れたテンプレートの機能を活用したいが、コンパイルに時間がかかって困っている人。あるいは、C++で書かれたライブラリの開発に携わっている人。 コンパイル時間削減のためのテクニ

    モダンなC++におけるコンパイル時間削減のテクニック - Qiita
    rydot
    rydot 2024/02/21
  • 公衆電話で封印されしインターネット接続の儀式を行ってきた - Qiita

    この儀式は西暦2024年1月をもって封印されました。現在「補完策」なるものが提供されていますが、それがこの儀式に有効なのかは不明です。皆さん自身の手で確かめてください。 公衆電話からインターネットに接続できるらしい。その事実を知ったのは2024年1月21日だった。そして同じ日、その機能が無くなるのは2024年1月31日だと知った。 封印までの最期の10日間で公衆電話からのインターネット接続の儀式を行ってきた話。 序章 公衆電話を使ってインターネットに接続できると知ったのは2024年1月21日だった。 ダイヤルアップ接続という電話回線を使った接続方式で、これは一般人が初めてインターネットというものに触れられるようになった一番最初の接続方式と言っていいのだと思う。多くの人が自宅の固定電話の回線を使ってインターネットをしていた。現代では光ファイバーからのLANケーブルやWifi、移動端末なら4G

    公衆電話で封印されしインターネット接続の儀式を行ってきた - Qiita
    rydot
    rydot 2024/02/16
  • 一般化加法モデルを用いた回帰分析③:加法ロジスティック回帰 - Qiita

    はじめに 前回と前々回の記事では一般化加法モデルの中でも誤差が正規分布に従うケースを扱いました。一般化線形モデルと同様に一般化加法モデルも目的変数が指数型分布族に従うような場合にまで拡張することができます。今回の記事ではロジスティック回帰に一般化加法モデルを適用した「加法ロジスティック回帰」についてまとめます。 RとかPythonのライブラリを使えば簡単に実行できますが、できるだけ頼らずにどんな原理でパラメータの推定を行なっているか整理しようと思います。 一般化加法モデル (GAM) $Y_1, \ldots,Y_n$を指数型分布族に従う独立な確率変数、$a$個の説明変数を$x_{i1},\ldots,x_{ia}$とします。 一般化線形モデル(GLM)では

    一般化加法モデルを用いた回帰分析③:加法ロジスティック回帰 - Qiita
    rydot
    rydot 2024/02/15
  • 一般化加法モデルを用いた回帰分析②:P-spline - Qiita

    はじめに こちらの記事の続きです。今回の記事ではP-splineについて勉強したことをまとめておこうと思います。 一般化加法モデル (GAM) GAMについて簡単におさらいします。以下のような応答変数yと説明変数xのデータを用いて、非線形回帰を行うことを考えます。サインカーブにノイズを乗せて適当に作ったデータです。 > test.data # A tibble: 101 x 2 x y <dbl> <dbl> 1 0 0.635 2 0.2 0.0663 3 0.4 -0.525 # プロット ggplot(data = test.data, aes(x = x, y = y)) + geom_point()

    一般化加法モデルを用いた回帰分析②:P-spline - Qiita
    rydot
    rydot 2024/02/15
  • 一般化加法モデルを用いた回帰分析① - Qiita

    はじめに 一般化加法モデルを用いた回帰分析について勉強したのでまとめておくことにします。基礎的な線形回帰の知識(最小二乗法、デザイン行列、正規方程式とか)があることは前提としています。 一般化加法モデル (GAM) 一般化加法モデル(Generalized Additive Model: GAM)の導入として、応答変数$y$と一つの説明変数$x$の関係性を表現するようなモデルを考えることにします。いま、応答変数$y$と説明変数$x$の以下のグラフに示すようなデータが得られているとします。 グラフから応答変数$y$と説明変数$x$の間には明らかに非線形な関係性があることが見て取れます。このような場合、通常の線形回帰では応答変数$y$と説明変数$x$の関係を十分に表現することはできません。このような場合は、例えば多項式回帰・サポートベクター回帰・ニューラルネットワークなど、非線形な関数を学習で

    一般化加法モデルを用いた回帰分析① - Qiita
    rydot
    rydot 2024/02/15
  • RustでFEMを実装してみた - Qiita

    はじめに 記事はAdvent Calender「数値解析」の記事になります。最近、Rustで弾性体の二次元有限要素法プログラムを実装しています。記事ではその振り返りをしたいと思います。 なぜRustなのか Rustにした理由は単純にパフォーマンスを求めたかったからです。数値解析の実装でまず挙がるのはPythonかもしれませんが、Pythonで記述してもパフォーマンスの低さから後で使う気にはならない気がします。やはり作ったものは使いたいですよね。 C++と悩みましたが、友人のプログラマに話を聞いたところ「Rust一択!」と言われたのでRustにしました。このあたりは色々な意見があるかもしれませんが。 連続体の支配方程式 連続体の支配方程式をおさらいします。支配方程式は以下の3つの式からなります。 つり合い方程式(equilibrium condition) 上図のような二次元微小変形要素

    RustでFEMを実装してみた - Qiita
    rydot
    rydot 2024/01/11
  • Galerkin法の数理についてまとめてみた - Qiita

    この記事は、「数値計算 Advent Calendar 2018」アドベントカレンダー22日目の記事です。 目次 目的 有限要素法とGalerkin法 Lax-Milgramの定理 今後の展開 参考文献 目的 数値計算手法の一つである有限要素法(FEM)の数学的な解釈について考えます. FEMの中でも、メジャーなGalerkin法の概要と数学的な意味づけと簡単な例を紹介します. 有限要素法とGalerkin法 有限要素法(FEM)とは? 端的に言うと、「微分方程式を、近似的に解くための数値解析の方法」 もう少し詳しく言うと「メッシュを用いて空間的に離散化された場の中から弱形式化された偏微分方程式の解を見つける方法」 解析対象を細かく分割し、その分割した各々の要素について近似的に応力と変位その関係 (弾性,弾塑性) を求め、要素の集合体である連続体に対して成立する線形の方程式をマトリックス法

    Galerkin法の数理についてまとめてみた - Qiita
    rydot
    rydot 2024/01/11
  • 直感でわかる、ヒューリスティック問題の羅針盤 ~貪欲法から山登り法まで~ - Qiita

    1. はじめに 最初に、記事ではどのようなトピックを扱うのかについて、少し説明したいと思います。 1-1. 記事で扱うトピック 21 世紀になり、IT 化が急速に進む今、現実社会ではいろいろなものが最適化されて動いています。これを形作るプログラミングの現場でも、例えば以下のような問題を考えたり、あるいは実際に使ったりすることもあるのではないでしょうか1。いくつか例を挙げてみましょう。 例 1. コイン問題:特定の金額をぴったり支払うために、最小で何枚の硬貨が必要か? 例 2. 最短経路問題:地図上の A 地点から B 地点までに行くのに、最短で何メートル歩く必要があるか? 例 3. 箱詰め問題:長方形の箱に、できるだけ多くの荷物を敷き詰めたい 例 4. 数分割問題:「できるだけ合計の値が近くなるように」2 つのグループに分割したい このように、いろいろな問題があります(もちろん名前を覚

    直感でわかる、ヒューリスティック問題の羅針盤 ~貪欲法から山登り法まで~ - Qiita
    rydot
    rydot 2023/12/08