タグ

関連タグで絞り込む (212)

タグの絞り込みを解除

開発に関するy_rのブックマーク (1,539)

  • この木なんの木? モンテカルロ木と最良優先MiniMax木の"間"に存在する名もなき木々 - ヴァルの開発記

    概要 この記事ではまだ名前が無いと思われるゲーム探索木をいくつか紹介します。この記事では具体的な実装は示さず、概念の紹介にとどめます。 この記事を読むために必要な知識は以下です。 ・モンテカルロ木探索+UCB1 ・MiniMax探索 ・ボンバーマンの基的なルール 名のある木々 名もなき木々を紹介する前に、まずは名のある木々を紹介します。 MCTS モンテカルロ木探索。簡単に言えば、評価関数を使わず、ランダム試行を繰り返して勝率の平均が高い手を調べる手法です。 有名な木なので、検索するとたくさん解説がヒットするのでこの記事では説明を割愛します。 一応参考として、私が初めてMCTSを実装したときに参考にした論文を載せておきます。 →A Survey of Monte Carlo Tree Search Methods 最良優先MiniMax 最良優先MiniMax探索についてはこちらの論文が

    この木なんの木? モンテカルロ木と最良優先MiniMax木の"間"に存在する名もなき木々 - ヴァルの開発記
  • mcts-survey-master-origin.pdf

    y_r
    y_r 2023/02/11
    モンテカルロ木探索
  • 単一始点最短路(SPFA)

    説明 単一始点全点間最短路を求めるアルゴリズム。単一始点全点間最短路を求めるアルゴリズム。負辺があっても動作する。また負閉路も検出する。 計算量 $O(VE)$ 実用上はBellman-Fordよりも高速に動作する。 実装例 shortest_path_faster_algorithm($g$, $s$):= 重み付きグラフ $g$ 上で、頂点 $s$ から全点間の最短コストを求める。到達できないとき, 型の最大値が格納される。負閉路を検出した時空列を返す。 template< typename T > vector< T > shortest_path_faster_algorithm(WeightedGraph< T > &g, int s) { const auto INF = numeric_limits< T >::max(); vector< T > dist(g.size()

  • 平面グラフアルゴリズム - joeの日記

    お待たせいたしました。Competitive Programming Advent Calendar 2019 8日目の記事です。 平面グラフとは 平面グラフとは、平面に辺を交差させずに描画できるグラフのことをいいます。現実世界の例では多くのroad mapがそうであったりします。平面グラフでは、たとえば最短路問題がで解けたり(Frederikson)、多くの最適化問題で、通常のグラフよりも効率的なアルゴリズムが発見されています。 この記事では平面グラフの性質や、アルゴリズムなどを紹介していこうと思います。もともとは実装しようと思っていたんですが、ちょっと人生が忙しいので保留です(一生保留しそう)(ごめんなさい)。 基編 Eulerの公式 連結な平面グラフについて、頂点数を, 辺数を, 面数をとするとが成り立つ。非質ですが、頂点は0次元、辺は1次元、面は2次元なので、符号とが共通してい

  • 機械学習パーティショニングのまとめ Part 1 l DataRobot

    – 適切なパーティショニングを選択するために – はじめに DataRobot でテレコム・鉄道分野のお客様を担当しているデータサイエンティストの佐藤です。 データサイエンスに携わり、モデルを作成しようと思った際に必ずと言っていいほどぶつかる壁が”適切なパーティショニングの選択”です。筆者もデータサイエンティストとして駆け出しの頃にパーティショニングがなぜ必要なのか?今予測したい問題においてどのパーティショニングを選択するべきなのか?非常に悩んだ覚えがあります。 稿では、当時の私のようにパーティショニングについて悩んでいる方を対象に、何を基準にどういうケースにおいてそれぞれのパーティショニングを選択するべきなのかを考察します。 ※より一つ一つのパーティショニングの方法を知りたいという方は、「機械学習パーティショニングのまとめ Part 2」をご参照ください。 パーティショニングとは? デ

    機械学習パーティショニングのまとめ Part 1 l DataRobot
  • ふつうのプログラマのふつうの設計

    普通のプログラマの普通の設計 2022-01-26 編(雑談)の前振りスライドです。 https://modeling-how-to-learn.connpass.com/event/231669/

    ふつうのプログラマのふつうの設計
  • テストでのデータベース単位の捉えかた - 日々常々

    データベース(に限らずあらゆる永続化リソース)を使用するテストをいかにして行うかはいつだって悩みの種です。この悩みは「どうやったらデータベースを使用するテストを行えるかわからない」ではなく「なんとかやってるけど、不満のようなものがある」というものになるかと思います。 やりかたはたくさんあるのですが、その優劣は条件なしに比較する意味がないくらい、条件に依存します。どんな選択肢も「この条件なら最適」と言えてしまうだけに、広いコンテキストで「こうするのがベスト」とも言いづらいのです。 前提 xUnit Test Patterns を下敷きにします。 ユニットテストでの話です。他でもある程度通じます。 具象イメージはSpringBootを使用するWebアプリケーションです。そこまでべったりな内容ではありませんが、背景にあるとご理解ください。他でもそれなりに通じます。 データベースを使用するテストで

    テストでのデータベース単位の捉えかた - 日々常々
    y_r
    y_r 2021/09/22
  • Xv6, a simple Unix-like teaching operating system

    The lastest version of xv6 is at: xv6 Introduction Xv6 is a teaching operating system developed in the summer of 2006 for MIT's operating systems course, 6.828: Operating System Engineering. We hope that xv6 will be useful in other courses too. This page collects resources to aid the use of xv6 in other courses, including a commentary on the source code itself. History and Background For many year

  • Operating Systems: Three Easy Pieces

    Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison) NEW: Security Chapters by Peter Reiher (UCLA) Welcome to Operating Systems: Three Easy Pieces (now version 1.10 -- see book news for details), a free online operating systems book! The book is centered around three conceptual pieces that are fundamental to operating systems: virtualization, concurrency, and pers

  • 論文解説 Attention Is All You Need (Transformer) - ディープラーニングブログ

    こんにちは Ryobot (りょぼっと) です. 紙は RNN や CNN を使わず Attention のみ使用したニューラル機械翻訳 Transformer を提案している. わずかな訓練で圧倒的な State-of-the-Art を達成し,華麗にタイトル回収した. また注意を非常にシンプルな数式に一般化したうえで,加法注意・内積注意・ソースターゲット注意・自己注意に分類した.このうち自己注意はかなり汎用的かつ強力な手法であり他のあらゆるニューラルネットに転用できる. WMT'14 の BLEU スコアは英仏: 41.0, 英独: 28.4 で第 1 位 Attention Is All You Need [Łukasz Kaiser et al., arXiv, 2017/06] Transformer: A Novel Neural Network Architecture f

    論文解説 Attention Is All You Need (Transformer) - ディープラーニングブログ
  • 自然言語処理の巨獣「Transformer」のSelf-Attention Layer紹介

    全てのTransformer記事はTransformerから始まる「Transformer」概要2017年中旬、Googleが発表した論文「Attention is all you need」で提出されたモデル「Transformer」は、深層学習の自然言語処理(NLP)分野でいまはデファクトスタンダードとして使われています。Transformerは要するに、過去の自然言語処理(NLP)で多く使われる再帰型ニューラルネットワーク(RNN)や畳み込みニューラルネットワーク(CNN)を「Self-Attention Layer」に入れ替えたモデルです。 それ以降、大抵の自然言語処理(NLP)分野で発表された研究や論文は、Transformerで再構築して発表されています。期待を裏切らなく、再構築されたモデルの結果は、以前の結果を上回っています。 Transformerは2017年に公開され、今

    自然言語処理の巨獣「Transformer」のSelf-Attention Layer紹介
  • 自然言語処理の必須知識 Transformer を徹底解説!

    はじめに 自然言語処理(Natural Language Processing: NLP)の文脈から誕生したTransformerはそのモデルのシンプルさにもかかわらず、大きな成果をあげることに成功しました。そのため、その後NLPにブレイクスルーをもたらしたBERTやGPT-2などのモデルはTransformerをもとにつくられています。現在(2020年)では、DETRなど最新の物体検出モデルにも使われるようになり、Transformerは機械学習を学ぶ上では避けて通ることができないモデル・アイディアであるといえるでしょう。 今回は、近年の最重要モデルといえるTransformerについて発表論文「All you need is attention」を中心に、その誕生背景からモデル概念まで一から解説したいと思います。 なお、今回の内容は以下の二つに大別されます。 .Transformerが

    自然言語処理の必須知識 Transformer を徹底解説!
  • 作って理解する Transformer / Attention - Qiita

    こんにちは。ミクシィ AI ロボット事業部でしゃべるロボットを作っているインコです。 この記事は ミクシィグループ Advent Calendar 2018 の5日目の記事です。 この記事の目的 この記事では2018年現在 DeepLearning における自然言語処理のデファクトスタンダードとなりつつある Transformer を作ることで、 Attention ベースのネットワークを理解することを目的とします。 機械翻訳などの Transformer, 自然言語理解の BERT やその他多くの現在 SoTA となっている自然言語処理のモデルは Attention ベースのモデルです。 Attention を理解することが今後の自然言語処理 x Deep Learning の必須になってくるのではないでしょうか。 この記事にかかれているコード (Github) 歴史 - RNN から

    作って理解する Transformer / Attention - Qiita
  • 深層学習界の大前提Transformerの論文解説! - Qiita

    この例に関する質問への回答を補足の項に記載しましたので、より良い理解のためにご参照ください。 1.3 モデル構造 トランスダクションモデル(ある文章を他の文章に変換するモデル(翻訳など))において主流なのは以下のようなエンコーダ-デコーダモデルである。 エンコーダ: 入力の文 $(x_1,\ldots,x_n)$ を $\boldsymbol{z}=(z_1,\ldots,z_n)$ へ変換 デコーダ: $\boldsymbol{z}$ から単語 $(y_1,\ldots,y_m)$ を出力。 ただし、1時刻に1単語のみで、前時刻のデコーダの出力を現時刻のデコーダの入力として使う。 Transformerは基的な大枠はエンコーダ-デコーダモデルでself-attention層とPosition-wise全結合層を使用していることが特徴。 つまり、以下の3つ(+2つ)のことが分かればモデル

    深層学習界の大前提Transformerの論文解説! - Qiita
  • 1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary

    自分が所属している会社のメンバーの教育用資料として、それなりの規模のデータを扱う時に前提として意識しておかなければいけないことをざっくりまとめたので、弊社特有の話は除外して公開用に整理してみました。 大規模データ処理、分散処理に慣れている人にとっては今更改めて言うことじゃないだろ、みたいな話ばかりだと思いますが、急激にデータスケールが増大してしまったりすると環境に開発者の意識が追い付かないこともあるかと思います。 そういったケースで参考にできるかもしれません。 弊社は基的にAWSによって運用されているので、AWSを前提にした様なキーワードやサービス名が出てきます。後、句読点があったり無かったりしますが、ご容赦ください。 追記: 社内用の資料の編集なのでかなりハイコンテキストな内容だから誤解するかもしれませんが、これらはそもそもRDBの話ではありません。(関係無くは無いけど) 1000万オ

    1000万件オーバーのレコードのデータをカジュアルに扱うための心構え - joker1007’s diary
    y_r
    y_r 2020/11/05
  • レガシーおじさん、SPAを始めてみた。そして限界を知る

    はじめに 最近、Webの記事を見てるとReactVue.jsばかりが上がっていてJSPやERBの話をしてる人は誰もいません。jQueryの記事ももちろん見ない。 つまり、Webだけ見る限りではほとんどの人がSPAを使ってるように見えます。 私はWeb界隈には居るもののどちらかというとバックエンド寄り、もっというとそもそもWebとか関係ない領域を見る事が多いので、ちょっとキャッチアップを兼ねていくつかの個人プロダクトにVue.jsを採用してみました。 jQueryくらいで頭が止まってたので。サーバサイドもマイクロサービスでAPI化が進んでるのでフロントもそれに合った技術を選ばないとですしね。 というわけで、今回はその中で得た知見というか、従来型のサーバサイドでのWeb開発をしていた人の視点でVue.jsをキャッチアップする流れで書いていきたいと思います。 まあ最終的な結論は正直「これすごく

    レガシーおじさん、SPAを始めてみた。そして限界を知る
    y_r
    y_r 2020/10/20
    Web 系フロントエンド (横道からの) 入門
  • Jerk (physics) - Wikipedia

  • ロボットの軌跡生成:躍度制限を用いて台形加速度プロファイルを作成する(その2)|Tajima Robotics

    ロボットの加減速時に躍度(Jerk)を制御することで、台形加速度(Trapezoidal Acceleration)の軌跡を生成することが出来ます。 このような軌跡生成を躍度制限加速度プロファイル(Jerk Limited Acceleration Profile)と言います。 躍度制限加速度プロファイルについての詳細は、こちらの記事を参考にしてください。 ロボットの軌跡生成:躍度制限を用いて台形加速度プロファイルを作成する 加速度(Acceleration)の単位時間当たりの変化率を表すものとして、躍度(Jerk、加加速度)があります。 ... 躍度制限加速度プロファイル 図のように、躍度(紫線)を制御することで、台形の加速度(赤線)、S字の速度プロファイル(青線)の作成が可能になります。 このような加速度波形を台形加速度プロファイル(Trapezoidal Acceleration P

    ロボットの軌跡生成:躍度制限を用いて台形加速度プロファイルを作成する(その2)|Tajima Robotics
  • アルゴリズムビジュアル大事典

    このサポートページでは、マイナビ出版発行の書籍「アルゴリズムビジュアル大事典」にて作成しましたシンボル、アニメーション、疑似コードを掲載いたします。また、内容のアップデートを行ってまいります。詳しい解説は、書をご参考にしてください。 アニメーションコントローラの使い方はクイックマニュアルでご確認頂けます。 補足情報が表示されているトピックにつきましては、ご注意ください。その他の訂正等は正誤表をご覧ください。ご質問、不具合等のご報告は、ご遠慮なくy.watanobe@gmail.com(渡部)までお送りください。

  • CV・CG・ロボティクスのためのリー群・リー代数入門: (1) リー群 - swk's log はてな別館

    シリーズ一覧へ このエントリでは,回転を題材としてリー群の定義を説明し,それを導入する動機と基的な考え方を導入する. ざっくりと言うと,回転を考えるというのはある種の「曲がった空間」を考えることであって,理論上も実用上も面倒な点が多い.ところがここで,回転が「群」と呼ばれる数学的構造を持っていることに着目すると,さっきの「曲がった空間」に関する問題を,それに対応する「真っ直ぐな空間」に関する問題に置き換えて考えることができる.ここで言う「曲がった空間」がリー群であり,「真っ直ぐな空間」がリー代数と呼ばれるものであり,それらの間の対応を表すのが指数写像と呼ばれるものである,という話をこのエントリとそれに続く 2 エントリくらいを通じて見ていきたい. 何やら魔法のような話に聞こえるかもしれないが,こんな風に,ある問題をそれと対応関係にある別の問題に置き換えて考えるというのは数学ではよくある話

    CV・CG・ロボティクスのためのリー群・リー代数入門: (1) リー群 - swk's log はてな別館