タグ

ブックマーク / qiita.com (55)

  • 深層強化学習アルゴリズムまとめ

    はじめに 深層強化学習の分野では日進月歩で新たなアルゴリズムが提案されています. それらを学ぶ上で基礎となるアルゴリズム(というより概念に近い?)はQ学習, SARSA, 方策勾配法, Actor-Criticの4つだと思われるので, これらを軸としてまとめてみたいと思います. 以下の4点はあらかじめご了承ください. コードは書いていません. 概念のみの説明です 他のアルゴリズムの基礎となりうる重要な概念については詳しく書きました. その他については簡潔に書きました 深層学習についてはある程度理解している読者を想定しています 書いているうちに規模がどんどん大きくなってしまったので, どこかに必ず間違いや不足があります. 「この式がおかしい!」「このアルゴリズムも追加するべき!」などコメントがあればぜひお願いします 全体像 扱うアルゴリズムを相関図にしてみました(私のイメージです). まず,

    深層強化学習アルゴリズムまとめ
  • 貰う DP と配る DP、メモ化再帰、個数制限なしナップサック問題 - Qiita

    はじめに ついこないだの AtCoder 上のコンテストで出題された問題 AtCoder Beginner Contest 099 C 問題 - Strange Bank が、初心者向けの 300 点問題としては史上最難ではないかということで話題沸騰になりました。 何も考えずに DP (動的計画法) した 辺の長さが 1 の DAG なので BFS でも DP でも Dijkstra でも OK 個数制限なしナップサック問題を復習しないと 全探索 + Greedy でやった といった色んな声が飛び交いました。動的計画法アルゴリズムの設計法などを具体的に学べるすごく教育的な問題だと思ったので、上記の事柄をまとめて整理することを試みます。それにしてもこの問題はコイン両替問題の 1 パターンとして位置付けられますが、色んな取り組み方ができますね。 ABC 099 C - Strange Bank

    貰う DP と配る DP、メモ化再帰、個数制限なしナップサック問題 - Qiita
  • ‪実世界で超頻出!二部マッチング (輸送問題、ネットワークフロー問題)の解法を総整理!‬ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 0. はじめに --- 二部マッチング問題は実世界で超頻出 はじめまして。NTTデータ数理システムでアルゴリズムを探求している大槻 (通称、けんちょん) です。 好きなアルゴリズムはタイトルにもある二部マッチングですが、会社ではなぜか「DP が好きな人」と呼ばれています。 以前に動的計画法 (DP) の典型パターンを整理した記事を執筆したのですが、DP と並んで超頻出の話題として二部マッチング問題があります。二部マッチング問題とは、例えばマッチングアプリなどに見られるように、2 つのカテゴリ間で最適なマッチングを構成していく問題です。実

    ‪実世界で超頻出!二部マッチング (輸送問題、ネットワークフロー問題)の解法を総整理!‬ - Qiita
  • 典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ - Qiita

    はじめに --- DP は役に立つ はじめまして。NTTデータ数理システムでアルゴリズムを探求している大槻 (通称、けんちょん) です。 好きなアルゴリズムは最小カットやマッチングですが、会社ではなぜか「DP が好きな人」と呼ばれています。 巷ではよく「DP なんて実務では使わない」といった言説が定期的に流れますが、そんなことはないです。僕自身この 2 年間で DP が使える実務案件に 3 件くらい関わりました! それはともかくとして、DP を学び立ての方がよく抱く悩みとして「バリエーションが多すぎて混乱するし、統一的なフレームワークがほしい」というのがあります。確かに DP のバリエーションは非常に多岐にわたるのですが、そのほとんどが以下の 3 つのフレームワークで説明できると思います: ナップサック DP 区間 DP bit DP 今回はこのうちのナップサック DP について、とにかく

    典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ - Qiita
  • ぼくたちのかんがえたさいきょうのi18n国家

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 記事は下記のtweetから始まるスレッドに触発され、@qnighyや@na4zagin3からアイディアを拝借して書いた。 i18n力が最強の国は国内に複数の言語があり、そのうちいくつかは他国でも使われている言語の方言で、1バイト文字での代替表記が困難で、歴史的にISO-2022ベースの文字コードとUnicodeと独自エンコーディングが混在していて、フリガナなどの特殊な組版規則があり、右書き左書き縦書きを併用し、 — Masaki Hara (@qnighy) 2018年8月6日 皆さんのおかげで最強のi18n国家が建設されつつある。一

    ぼくたちのかんがえたさいきょうのi18n国家
  • Railsアプリケーションにおけるエラー処理(例外処理)の考え方 - Qiita

    はじめに Railsアプリケーションを格的に作り込んでいくと、「エラー」とは無縁ではいられません。 しょうもないバグでエラーが発生することもありますし、ほとんど不可抗力ともいえるような大規模なネットワーク障害でエラーが発生することもあります。 エラーの種類がなんであれ、エラーが起きた場合は「原因を素早く特定し、速やかに復旧させること」と「あるエラーが引き金になって、さらに大きなエラーに引き起こさないようにすること」が重要です。 エラー処理を適切に実装していれば、原因の特定や復旧もすばやくできますし、さらに大きなエラーを引き起こす可能性も少ないです。 また、ソースコードも比較的シンプルに保てます。 逆にエラー処理が不適切だと原因の特定に時間がかかったり、異常なデータがどんどん増えてさらに大きなエラーを引き起こしたりします。 ソースコードにも無駄に複雑な処理フローや条件分岐がたくさん出てきて

    Railsアプリケーションにおけるエラー処理(例外処理)の考え方 - Qiita
  • Reactを使って本気でアンケートシステムをつくった - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は エムスリー Advent Calendar 2017 の25日目の記事です。 普段はDB・サーバサイド・クライアントサイドまでの設計・実装・運用を扱っていますが、この記事ではReactを使って開発したシステムについてを紹介しようと思います。 作ったもの アンケートシステム(survey-designer-js)を作り、社内で使っていました。またOSSとしてレポジトリに公開もしています。 GitHub DEMO なお公開しているのはクライアントサイドのみで、サーバサイドの実装は公開していません。なお、エムスリー社内で使用してい

    Reactを使って本気でアンケートシステムをつくった - Qiita
  • よく使う正規表現はもうググりたくない! - Qiita

    タイトル通りによく使う正規表現を毎回ググるのが効率悪いのでまとめてみました。各言語で正規表現のサンプルを書いてみました。 正規表現式 Emailアドレス ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ ドメイン名 ^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$ インタネットURL ^(http|https)://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ユーザー名 (Twitter username) ^[a-zA-Z0-9_\-.]{3,15}$ 固定電話 ^0\d-\d{4}-\d{4}$ 携帯電話 ^(070|080|090)-\d{4}-\d{4}$ IP電話 ^050-\d{4}-\d{4}$ フリーダイヤル ^0120-\d{3}-\d{3}

    よく使う正規表現はもうググりたくない! - Qiita
    TaKUMA
    TaKUMA 2017/12/11
    Origamiは地方民を敵に回したいっぽいな?
  • [TF]Optimizerで更新する変数を指定する方法 - Qiita

    2番の方がコードの変更が楽です。 実行結果 なんにもしない時 下記のようなコードを実行すると変数w, b, x, y_が更新されてしまいます。 (下記のコード自体実用性は殆ど無いですし、通常はx, y_をplaceholderにするので問題にはなりませんが、例ということでご容赦ください。) import tensorflow as tf import numpy as np w = tf.Variable(tf.constant([3.]), name='w') b = tf.Variable(tf.constant([1.]), name='b') x = tf.Variable(tf.constant([2.]), name='x') y_ = tf.Variable(tf.constant([5.]), name='y_') p = w*x y = p+b s = -y t = s

    [TF]Optimizerで更新する変数を指定する方法 - Qiita
  • ついに来た! Azure GPU インスタンス上に30分で構築する TensorFlow on GPU 実行環境構築手順 - Qiita

    ついに来た! Azure GPU インスタンス上に30分で構築する TensorFlow on GPU 実行環境構築手順Azure機械学習DeepLearningTensorFlowubuntu16.04 Deep Learning の学習を高速でぶん回すには GPU の活用が欠かせないですよね! 12月1日についに Azure の GPU インスタンス (Azure N series) が GA (General Availability) になったので、 その N series で使える以下の3種類の OS の中から、 Ubuntu 16.04 LTS Windows Server 2016 Windows Server 2012 R2 Ubuntu 16.04 LTS を選んで、TensorFlow on GPU の環境構築方法をまとめました。 TensorFlow on GPU

    ついに来た! Azure GPU インスタンス上に30分で構築する TensorFlow on GPU 実行環境構築手順 - Qiita
  • Chainerで顔イラストの自動生成 - Qiita

    PFNのmattyaです。chainerを使ったイラスト自動生成をやってみました(上の画像もその一例です)。 20日目の@rezoolabさんの記事(Chainerを使ってコンピュータにイラストを描かせる)とネタが被っちゃったので、記事ではさらに発展的なところを書いていきたいと思います。一緒に読んでいただくとよいかと。 概要 Chainerで画像を生成するニューラルネットであるDCGANを実装した→github safebooruから顔イラストを集めてきて学習させた 学習済みモデルをconvnetjsで読み込ませて、ブラウザ上で動くデモを作成した→こちら(ローディングに20秒程度かかります) アルゴリズム 今回実装したDCGAN(元論文)はGenerative Adversarial Networkというアルゴリズムの発展形です。GANの目標は、学習データセットと見分けがつかないようなデ

    Chainerで顔イラストの自動生成 - Qiita
  • DeepLearning研究 2016年のまとめ - Qiita

    DeepLearning Advent Calendar 2016の17日目の記事です。 はじめに はじめまして。 Liaroという会社でエンジニアをしている@eve_ykと申します。 今年もあと僅かとなりました。 ここらで、今年のDeepLearningの主要な成果を振り返ってみましょう。 この記事は、2016年に発表されたDeepLearning関係の研究を広く浅くまとめたものです。今年のDeepLearningの研究の進歩を俯瞰するのに役立てば幸いです。 それぞれの内容について、その要点や感想なんかを簡単にまとめられたらと思います。 特に重要だと思った研究には★マークをつけておきます。 非常に長くなってしまったため、興味のある分野だけ読んでいただければと思います。 言い訳とお願い 見つけたものはコードへのリンクも示すので、プログラミングに関係ある記事ということで… 分野的にかなり偏っ

    DeepLearning研究 2016年のまとめ - Qiita
  • Inside of Deep Learning あるいは深層学習は何を変えるのか - Qiita

    シリコンバレーのエンジニアが一年ほどをDL(Deep Learning)を追いかけてみて思ったこと、感じたことをまとめてみました。とにかく伝えたいことは、DLはもはやその一言では片付けられないほどに構造やアプローチが多様化しているということ。そしてその進化スピードがえげつないほど速いということです。 将来のプログラミングや問題解決の仕方を変え、人を取り巻く環境を変えていくかもしれないというじりじりとした圧迫感。これを少しでも伝えられればと思っています。 このポストの方針 技術部分の説明は初心者向け。各構成要素など基礎から解説します。今からDLをキャッチアップしていく人には多分丁度良いです。 最初と最後だけ読むのも良いですが、各部の技術的な部分や難しさはできるだけ短く分かりやすく書くつもりですしここが一番大事なところです。できれば時間のあるときにじっくり読んでもらえればと思います。 内容 D

    Inside of Deep Learning あるいは深層学習は何を変えるのか - Qiita
    TaKUMA
    TaKUMA 2017/01/23
    良いまとめ
  • PyenvによるPython3.x環境構築(CentOS, Ubuntu) - Qiita

    はじめに pythonでアプリケーションを作ることになったのでデフォルトでOSに入っているpython2.x系でいいかなと思ったのだが、Python 2 と Python 3 のどちらを使って開発すべき?を読むともうPython3.xは安定しているとのことなので、pyenvでシステムワイドにPython3.xを利用できる環境を構築してみた。 はじめはpyenvだけの管理でいいかなと思ったが、各pythonのインストールは結構時間がかかり手軽に環境を削除再構築が出来なさそうなのでvirtualenvも導入した。

    PyenvによるPython3.x環境構築(CentOS, Ubuntu) - Qiita
    TaKUMA
    TaKUMA 2016/06/25
  • MySQLでバルクアップデートを実現するには その1 - Qiita

    更新のお知らせ 「その2」ができました。 「その1」を読んでいただいたあとに、こちらもご覧ください。 https://zenn.dev/maxima/articles/a23a9eda0cd3ae はじめに Hamee Advent Calendar 1日目ということで、実用的なSQL、バルクアップデートをご紹介したいと思います! バルクアップデートとは、1文のSQLで複数のレコードを一気に更新してしまうUPDATE文のことです。 バルクインサートはよく聞くけど、バルクアップデートは出来ないのかと疑問に思ったことはないですか? (バルクインサートについてそもそもご存じない方はこちらの記事がシンプルで分かりやすいかと思います) 結論から言いますと、バルクアップデートは可能です。しかし、バルクインサートほど気の利いた構文があるわけではありません。 これから何種類かご紹介しますが、ここに書かれて

    MySQLでバルクアップデートを実現するには その1 - Qiita
    TaKUMA
    TaKUMA 2016/05/13
    bulk update, elt, field
  • 大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita

    Help us understand the problem. What is going on with this article? 3月24日に発表になったLINEのBOT API Trial Accountが、いよいよ4月7日から実際に試せるようになりました。既に多くのBOTが開発者の手によって作られ始めたようですね。QiitaにもいくつかBOTの作り方が投稿されていますので、"LINE BOT"というキーワードで探してみてください。 実際の作り方の基は他の投稿に任せるとして、BOT API自体は非常にシンプルな作りなので、試すこと自体はすぐにできると思います。しかし、シンプルな反面、仮に近い将来「Trial」が取れて、友だち50人制限が撤廃された時、それでも正しく安定的に動作するBOTとするには、アーキテクチャ上の工夫が必要になります。個人的に、既にLINE BusinessCo

    大量メッセージが来ても安心なLINE BOTサーバのアーキテクチャ - Qiita
    TaKUMA
    TaKUMA 2016/04/13
    queueにいれる
  • Arduinoのポートが認識されない時の対処法 - Qiita

    ArduinoをMacに接続してもポートが認識されない時の対処法 ポートの確認方法 Arduinoを繋いだ状態で調べる ArduinoのMacアプリから Arduino > ツール > シリアルポート 一覧が出てくる。だいたい /dev/tty.usbmodem1411みたいなのがArduinoのシリアルポートになる ターミナルから Terminal > $ ls -l /dev/tty.* 一覧が出てくる ポートからArduinoが認識されない ArduinoをMacにつないで上記の方法を試しても/dev/tty.usbmodem1411の用なポートが認識されない時 再起動 まずはPC再起動。これで直る時がある 再起動でも直らない システム環境設定 > ネットワーク > 左のWi-Fiなど緑ランプで接続されているもの以外の赤色のをすべて削除する その後再起動。 これで無事認識されるように

    Arduinoのポートが認識されない時の対処法 - Qiita
    TaKUMA
    TaKUMA 2016/04/01
    “システム環境設定 > ネットワーク > 左のWi-Fiなど緑ランプで接続されているもの以外の赤色のをすべて削除する その後再起動。”
  • Webデータ収集(その2)~ UNIX wget コマンドで、対象ウェブページ自身を含めて リンク先 指定階層分 先の全ディレクトリのなかから、zipファイルだけを全量ダウンロード - Qiita

    対象ウェブページ から リンク3階層先までを自動探索して、zip 形式の画像ファイルだけを、ローカルの指定ディレクトリに、自動ダウンロードしてみる 【 実行すること 】 ※ 今回は、青空文庫サイトのトップページから、3階層先までの範囲内にあるjpg ファイルを全量取得してきます 【 使用環境 】 Virtual Box 仮想マシン ( ホストOS ) Windows 7 (64-bit) ( ゲストOS ) Ubuntu ( shell ) zsh (以下で、シェルの種類を確認)

    Webデータ収集(その2)~ UNIX wget コマンドで、対象ウェブページ自身を含めて リンク先 指定階層分 先の全ディレクトリのなかから、zipファイルだけを全量ダウンロード - Qiita
    TaKUMA
    TaKUMA 2016/01/18
  • 最強のSSH踏み台設定 - Qiita

    追記:openssh-7.3 以降なら ProxyJump や -J が使えます ホスト名を + で繋げることで多段Proxy接続も簡単に、がコンセプトだったエントリの設定ですが、OpenSSH 7.3 から ProxyJump という設定が使えるようになったので、使えるなら ProxyJump を使う方が健全だし柔軟で使い勝手も良いのでそちらを覚えて帰ることをオススメします。 使い方は簡単で以下のような感じです。多段も行けるし、踏み台ホスト毎にユーザ名やポート番号を変えることも出来ます。 # 1. bastion.example.jp -> internal.example.jp ssh -J bastion.example.jp internal.example.jp # 2. bastion.example.jp -> internal.example.jp -> super-de

    最強のSSH踏み台設定 - Qiita
    TaKUMA
    TaKUMA 2016/01/04
  • 初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。 - Qiita

    こんにちは、2015年も終わりですね。昨年よりエンジニアのお仕事をはじめております自称エンジニアの@mochizukikotaroです。 お祭り記事ですので、皆様の箸休めの一助にでもなればと思いながら、全力で書きたいと思います。 まず感謝 当記事は、「素人がAWSに手を出し、のんきに過ごして気づいたら、自分のミスで不正利用され$6,000ほどの請求が来ていて」一週間ほどべ物も喉を通らず、AWS様に泣きついた結果、「なんとか情け容赦を頂いた」という内容です。 文中には多少ふざけた言葉選びが散見されるかもしれませんが、私は全力で AWSさんに感謝 をしております。 この先、 僕と同じような過ちを犯す可哀想な素人エンジニアを、この世から一人でも無くしたい。 と切に願っております。 最初にお断りしておきますが、 当記事から得られる、プログラミングインテリジェンスは1gくらいです。 一定レベル以

    初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。 - Qiita
    TaKUMA
    TaKUMA 2015/12/31
    mochizukikotaroさん、どこで働いてるんだろう