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

  • 画像処理の数式を見て石になった時のための、金の針 - Qiita

    画像処理は難しい。 Instagramのキレイなフィルタ、GoogleのPhoto Sphere、そうしたサービスを見て画像は面白そうだ!と心躍らせて開いた画像処理の。そこに山と羅列される数式を前に石化せざるを得なかった俺たちが、耳にささやかれる「難しいことはOpenCVがやってくれるわ。そうでしょ?」という声に身をゆだねる以外に何ができただろう。 稿は石化せざるを得なかったあの頃を克服し、OpenCVを使いながらも基礎的な理論を理解したいと願う方へ、その道筋(アイテム的には金の針)を示すものになればと思います。 扱う範囲としては、あらゆる処理の基礎となる「画像の特徴点検出」を対象とします(実践 コンピュータビジョンの2章に相当)。なお、記事自体、初心者である私が理解しながら書いているため、上級画像処理冒険者の方は誤りなどあれば指摘していただければ幸いです。 画像の特徴点とは 人間が

    画像処理の数式を見て石になった時のための、金の針 - Qiita
    cocoasynn
    cocoasynn 2017/09/28
  • Reactアハ体験 - Qiita

    Reactはちょっとしたコツを掴むと一気に理解が進みます。 Googleのデベロッパーであり数々のReactトレーニングを手がけてきたTyler McGinnis氏によるReact "Aha" Momentsが非常に参考になるため、人の許可を得て意訳しました。 誤りやより良い表現などがあればご指摘頂けると助かります。 原文:https://tylermcginnis.com/react-aha-moments/ 私が技術的なコンテンツを教えたり書いたりする時の主な目標の1つは「アハ体験」を最大化することです。アハ体験は物事が突然理解できた瞬間のひらめきです。私たちは皆これを体験してきましたし、私の知る最高の教師たちは聴衆に応じて、それらの瞬間を最大化するための教えを最適化することができます。 ここ数年、私はほぼ全ての一般的なメディアでReactを教えてきました。その間、私はReact習得

    Reactアハ体験 - Qiita
    cocoasynn
    cocoasynn 2017/09/28
  • LambdaでAWSの料金を毎日Slackに通知した結果課金されてしまった - Qiita

    はじめに ブログにも書いてます 請求アラートは設定していますが、それとは別にAWSの料金をLambdacronで定期チェックしてSlackに通知するを設定して1ヶ月間運用してみました。 毎日金額がわかるとやっぱり安心できますよね。 推移 おわりに 安心のために2円(2017/09/01のレート)支払うことになった。 悲しい。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    LambdaでAWSの料金を毎日Slackに通知した結果課金されてしまった - Qiita
    cocoasynn
    cocoasynn 2017/09/09
    好き
  • ディープラーニングの判断根拠を理解する手法 - Qiita

    ディープラーニングは特定分野で非常に高い精度が出せることもあり、その応用範囲はどんどん広がっています。 しかし、そんなディープラーニングにも弱点はあります。その中でも大きい問題点が、「何を根拠に判断しているかよくわからない」ということです。 ディープラーニングは、学習の過程でデータ内の特徴それ自体を学習するのが得意という特性があります。これにより「人が特徴を抽出する必要がない」と言われたりもしますが、逆に言えばどんな特徴を抽出するかはネットワーク任せということです。抽出された特徴はその名の通りディープなネットワークの中の重みに潜在しており、そこから学習された「何か」を人間が理解可能な形で取り出すというのは至難の業です。 例題:このネットワークが何を根拠にとして判断しているか、ネットワークの重みを可視化した上図から答えよ(制限時間:3分) image from CS231n Visua

    ディープラーニングの判断根拠を理解する手法 - Qiita
    cocoasynn
    cocoasynn 2017/09/07
  • 深層学習 を 用いた 異常値検知 手法まとめ 〜 (Denosing) AutoEncoder, LSTM, TDA(Topological Data Analysis) + CNN - Qiita

    オーソドックス な アプローチ(一般的手法) まず は、以下 が よくまとまっている。 株式会社クロスコンパス・インテリジェンス(2016.10.5)「NVIDIA GPU TECHNOLOGY CONFERENCE JAPAN 2016 Industry Deep Learning」 異常値予測 を 行う アプローチ としては、以下 が 一般的な考え方 の ようだ。 (データ量の多い)正常時のデータ挙動の特徴パターンを学ばせて、 新規データが上記の特徴パターンから乖離している場合を、異常とみなす 上記のアプローチをとる理由 は、「異常発生時のデータ」の取得可能件数 は、「正常時のデータ」 に 比べて、取得できるデータの件数 が 圧倒的に少ない から である。 上記のスライド で 挙げられている AutoEncoderモデル や LSTMモデル を 採用し、 AutoEncoderモデル

    深層学習 を 用いた 異常値検知 手法まとめ 〜 (Denosing) AutoEncoder, LSTM, TDA(Topological Data Analysis) + CNN - Qiita
    cocoasynn
    cocoasynn 2017/08/25
  • ビジネスホテルで一人開発合宿する - Qiita

    ビジネスホテルはたまに利用するのですが、結構居心地が良いんですよね。仕事が捗ったこともありました。 ふと「一人開発合宿できるんじゃね?」と思い立ち、試してみたところ好評でしたので、今回まとめてみました。 対象読者 開発に専念したい(けど現状できてない)と考えている方 例1: 「最近だらけてるなー、開発アイデアはあるんだけど腰が上がらないんだよな……」 例2: 「思う存分、誰にも邪魔されずに開発しまくってみたいなぁ」 多人数参加型の開発合宿が合わずにモヤモヤしている方 一人開発合宿について興味を持った方 一人開発合宿とは まずは一般的な意味での「開発合宿」と、そこから派生した「一人開発合宿」について概要を話します。 開発合宿とは 開発合宿とは、開発を行うための合宿です。一般的には以下のニュアンスがあります。 複数人で行う 旅館に泊まる 開発は大会議室を借りて、そこに機材とか持ち込んで行う そ

    ビジネスホテルで一人開発合宿する - Qiita
    cocoasynn
    cocoasynn 2017/08/18
    "試してみたところ好評でしたので"
  • 機械学習の論文を読んでみたいけど難しそう、という時に見るサイト - Qiita

    機械学習の基礎はそれなりに習得し、次のステップとして論文を読んでみたい、実装にチャレンジしてみたい、という方も多いのではないかと思います。 ただ、機械学習の論文といってもどこから読んでいいのか、興味がある論文を見つけるにしても英語のAbstractを眺めて行くのはちょっとつらい・・・という方のために、ポータルサイトを作りました。 arXivTimes Indicator 以前、機械学習に関わる論文の要約を共有するGitHubリポジトリとBotを作成したのですが、そこでの投稿内容をまとめて見ることができます。 ジャンル別に参照可能な他、 Pocketをお使いであればPocketへの登録も可能です。 arXivTimesは、機械学習の研究動向に関する集合知を形成することを目的としています(日語で参照可能な)。 そのため、今回のポータルの作成を機により多くの投稿をしてもらい、また要約の質を高め

    機械学習の論文を読んでみたいけど難しそう、という時に見るサイト - Qiita
    cocoasynn
    cocoasynn 2017/08/02
  • Dockerコンテナのメトリクス監視してますか? - Qiita

    どうも僕です。タイトルどおりです。 Dockerコンテナのメトリクス監視してますか??? 番環境ならDataDogとかそのへんで監視していてもローカル環境のやつ確認してないこと多くないですか? ※ 僕はしてないです。dd-agentローカルにも入れれば終わりじゃんって話なんですが、なんかあれじゃないですか。。。 監視してなかったお陰で、高負荷時に突然死する原因を調査したい場合に、無事頭を抱えました。(原因はメモリ枯渇してた) そこで、コンテナ名, コンテナID, CPU, MEM, NET RX/TX, IO R/W, PIDS 情報が見れたらいいのになーを調べてたらさくっと見れることに気づいたので記事にまとめておきます。 やりたかったのはこういうやつです。 家の付随機能を利用する コンテナのリソース使用状況をライブで流し続ける 使い方

    Dockerコンテナのメトリクス監視してますか? - Qiita
    cocoasynn
    cocoasynn 2017/08/02
  • RustでSMFパーサーを書く - Qiita

    ※この記事は文系的冗長性及び反知性的曖昧主義に支配されています1。 現代楽譜学概論あるいは錆びついた頭にオイルを Null安全2が一部界隈を賑わせた2016年11月。貴重な休日を湯水のように費やして不毛な作業に明け暮れる文系日曜プログラマーである私は、案の定、天啓を得ました。蘇る記憶。30億のデバイス。ヌルポ。ガッ。もういやだ、モダンなラングエッヂをライトしたい……!3 とはいえ、限られた時間で書く以上、目的をもって取り組みたいというもの。一通り思いを巡らせて浮かんだのが、C++を覚えるためにSMFパーサーを書いた経験。ビット演算からファイル入出力まで一通り必要となる上に、規模感が手頃で、新たな言語を覚えるのにそこそこ向いています。何よりちょうど、より高機能なものに書き直したいと思っていました。というわけで、C++の代替言語(と目される)RustでSMFパーサーライブラリghakufを書き

    RustでSMFパーサーを書く - Qiita
    cocoasynn
    cocoasynn 2017/07/24
  • [Deprecated] Go CodeReviewComments 日本語翻訳 #golang - Qiita

    注意 記事は以降更新されません。 https://knsh14.github.io/translations/go-codereview-comments/ こちらに移動しました。 以前にGoを書く機会があったときにレビュアーに「俺に持ってくる前にこれを読んで直してからこい!」 と言われたので、読んだ証拠に翻訳しました。 Go Code Review Comments 原文 go fmt あなたのコードに gofmt を走らせると、自動的に機械的に直すことのできるスタイルの大部分を修正してくれます。 世にあるGoのコードのほとんどすべてが gofmt を使っています。 この文章の残りは機械的に直すことのできないポイントについて解説します。 代わりに goimports を使う手段もあります。 gofmt に加えて必要に応じてimport内に空行をつけたり消したりする機能があります。 Co

    [Deprecated] Go CodeReviewComments 日本語翻訳 #golang - Qiita
    cocoasynn
    cocoasynn 2017/07/19
  • 100万倍速いプログラムを書く - Qiita

    この記事はなんなの プログラミングを始めたばかりで高速化の大枠が全くわからず意味不明なことをしていた在学時、こんな資料があったら良かったのになあ、と思って書いたもの。 書いて、在学時研究室に押し付けた後紛失したと思われていたものが発掘されたもの。 要約 ライブラリがあるならそれを使う。 ライブラリが無ければ、ボトルネック部分を探してそこだけ高速な言語で書きなおすか、可能なら事前コンパイルする。 最初から全てを Low-Level な言語で書くと大変、でも結果のプログラムは速い。 以下の時間の計測ではインポートにかかる時間は除いています。 使用するもの Python(3系) Numba Scipy Line Profiler Fortran(gfortran) QUADPACK QUADPACK以外の導入方法の説明は色んな所にあるので各自でお願いします。上3つに関しては、個人的にはAnaco

    100万倍速いプログラムを書く - Qiita
    cocoasynn
    cocoasynn 2017/07/07
    良い
  • GitHub APIから学ぶ次世代のAPI実装方式GraphQL - Qiita

    最近公開されたGitHubAPIは、GraphQLという形式に対応しました。今後はこちらが主流になっていくようで、既存のREST APIからGraphQLへのマイグレーションガイドも提供されています。 今回は、このGraphQLについて、実際にGitHubAPIを叩きながらその仕組みを解説していきたいと思います。 GraphQLとは 歴史 GraphQLは、Facebookの中で2012年ごろから使われ始めたそうです。その後2015年のReact.js Confで紹介されたところ話題となり、同年"technical preview"のステータスでオープンソースとして公開されました。その後仕様が詰められ、2016年9月に晴れて"preview"を脱し公式実装として公開されました。これと同じタイミングで、GitHubからGraphQLバージョンのAPIが公開されています。 このあたりの経緯

    GitHub APIから学ぶ次世代のAPI実装方式GraphQL - Qiita
    cocoasynn
    cocoasynn 2017/06/22
  • ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips

    近年の KVS では割と Redis が覇権を取っていることもあり(当社比), 社内の多くのプロジェクトで Redis を使用するようになりました. ということでノウハウ的なのも溜まってきたのでまとめたいと思います. (大量のユーザーデータを扱うソシャゲにしか当てはまらない部分もあるかと思います) 単純にパフォーマンスを RDB < Redis と思い込んでとりあえずでキャッシュしない 「Redis は速い」と言われますが, インデックスをちゃんと貼った RDB のクエリも そこまで遅いわけではありません. 結局通信コストの方が遥かに大きいので内部の 取得時間差はトータルで考えると多くの場合誤差です. 特に RDB の主キーのみで取得できるようなデータを Redis にキャッシュすることに メリットはありません. キャッシュするコードを書くコストの方が高くつきます. キャッシュするのは R

    ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips
    cocoasynn
    cocoasynn 2017/06/16
  • Vim scriptを処理系レベルから高速化しようとしている話 - Qiita

    TL; DR Vim scriptをパースしてASTを作り、高速化を図ります。リポジトリはこちら→wholekeik/vim 追記: ベンチマーク追加しました AST化 Vim script は実行のたびにコマンドをパースしているので非常に遅い言語です。コマンドをパースしておいてASTとし、それを実行すれば高速化が見込めます。しかし、Vim scriptでは引数の解釈が各コマンドによって全く異なるため、共通のパーサーを書くのは不可能です。したがって事前にパースするのではなく実際に実行しながら並行してASTを作っていきます。なおVim scriptの実行はユーザーの入力(コマンドモード)やオートコマンド、関数などがありますが、ASTとなるのは関数内のみです。また、AST化は行単位で行われます。 大まかな流れ 関数を定義する 通常通り呼ばれる 呼ばれたExコマンドのうち、ASTにできるものがあ

    Vim scriptを処理系レベルから高速化しようとしている話 - Qiita
    cocoasynn
    cocoasynn 2017/06/10
  • 最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita

    最近では珍しくもなくなった"Quorum"という言葉。Zookeeper, etcd, Serfといったクラスタ中でデータのレプリケーションを行ってくれるようなツールや、Cassandra, Riakといった分散データベース(NoSQL系)のようなツールにおいても、データの複製に一貫性を持たせる仕組みとしてよく聞かれます。 しかしながら、多くのスライドやWebの記事を読んでも、"Quorum"という語が意味するところは要するに「過半数ノードによる多数決」というような説明が多いように感じていました。 にも関わらず、"Quorum"と呼ばれているのはなぜか?そんな疑問を持っていたので、この機会に調べてみました。 そうしたら、"Quorum"は過半数/多数決という概念を一般化した非常に抽象でパワフルな概念だということがわかりましたのでここにまとめておきたいと思います。 分散システムにおけるデータ

    最近よく聞くQuorumは過半数(多数決)よりも一般的でパワフルな概念だった - Qiita
    cocoasynn
    cocoasynn 2017/05/22
  • 資金力のないWeb系ベンチャーがHaskellを採用したらどうなったか - Qiita

    はじめに 僕の業は酪農で、ヤギのさくらちゃんをお世話するのが仕事ですが、それだけではっていけないのが世の中の悲しさなので、副業フリーランスITコンサル(兼プログラマ)や株式会社UZUZっていう会社のひきこもり系最高技術責任者としてHaskellやElmを業務で使っています。 あと、個人的な趣味で株式会社ARoWっていう社員数2名のちっちゃいWeb系の会社を実験的に経営していて、そこでもメインにHaskellを使っています。 Haskellを実際に小規模な会社やフリーランスで使っている人って、実は世の中にほとんどいないみたいです。 そこで、実際のところ「Haskellって資金力のない会社や個人が業務で使えるのん?」っていう疑問に対して率直にお答えします。 日Haskell界の現状 まず、Haskell界隈の日における現状についてお話します。 知ってる方も多いと思いますが、日でH

    資金力のないWeb系ベンチャーがHaskellを採用したらどうなったか - Qiita
    cocoasynn
    cocoasynn 2017/05/20
    ヤギ飼ってると書類食べられないのか気になる
  • 機械学習の情報を手法を中心にざっくり整理 - Qiita

    概要 自分用のメモとして、機械学習に関する情報を浅く ( それなりに ) 広くをモットーに、ざっくり整理してみました。 少しでも、他の方の理解に役立ったら嬉しいです。 機械学習とは コンピュータプログラムが経験によって自動的に出力結果を改善していく仕組み。 機械学習の代表的な手法について記載します。 1.教師あり学習 2.教師なし学習 3.強化学習 に分けて記載しました。 ※概要説明は一例です。 1.教師あり学習 1-1.線形回帰 予測したい値を算出する式を連続する多項式として表し、各係数を最小二乗法や最尤推定法で求めることでモデルとなる式を決定する Pythonライブラリ:scikit-learn(sklearn.linear_model.LinearRegression) 参考:最小二乗法による線形回帰のアルゴリズム (自身のQiitaの過去記事です) 1-2.ロジスティック回帰 2択

    機械学習の情報を手法を中心にざっくり整理 - Qiita
    cocoasynn
    cocoasynn 2017/05/19
  • Railsしかできない奴はいつまで経ってもRailsしかできない - Qiita

    あと5年もすれば「Railsしかできない奴はいつまで経ってもRailsしかできない」て言われるようになるよ - ledsun のコメント / はてなブックマーク 5年と言わず、今すぐ言おう。 流行りだと言われてRailsをやってみることにする。 Railsチュートリアルを一通りやる。 それなりの物ができる。 チュートリアルに毛が生えた程度はできる。 他のフレームワークに挑戦してみる。 Sinatraやってみたけど、Rubyの基礎がわかってないから、挫折する。RailsがあればSinatraなど不要と言って、Sinatraを貶す。なお、RailsとSinatraの違いはわかってない。 いっそ、他の言語に挑戦してみる。 Javaやってみたけど、オブジェクト指向の基礎がわかってないから、挫折する。Smalltalkこそがオブジェクト指向の流であり、C++風のオブジェクト指向は似非と言って、Ja

    Railsしかできない奴はいつまで経ってもRailsしかできない - Qiita
    cocoasynn
    cocoasynn 2017/05/14
    逆になんでも勝手に動くせいで意味分かんねえと思って最初RailsじゃなくてSinatraから触り始めた過去を思い出した
  • Rust の色々な Struct の返し方 - Qiita

    ふと思い立って Rust という言語である自分用のツールを書いた。大変気に入ったのでメモを残す。 基情報 ウェブサイト: https://www.rust-lang.org/ 色んなインストール方法があるが、周辺ツールを使い始めると結局家お薦めの curl https://sh.rustup.rs -sSf | sh が一番良かった。 チュートリアル: https://doc.rust-lang.org/book/guessing-game.html Rust の基が書いてあるが、一番面白い参照について触れてない。 参照について https://doc.rust-lang.org/book/ownership.html Ownership, References and Borrowing, Lifetimes の三章で RustRust らしい部分が解説されている。 引っかか

    Rust の色々な Struct の返し方 - Qiita
    cocoasynn
    cocoasynn 2017/05/02
  • [scala]なぜListではなくSeqを使うべきなのか - Qiita

    Listは使わずにSeqにしなさいとよく言われるけど、何故そうなのかはいまいちよくわかってなかったので、調べました。基的な内容です。 そもそもSeqとは Seq(scala.collection.Seq)は、Iterableのうち順序を持つものを指します。 全てのcollectionはIterableであるので、順序がある(要素にindexでアクセスできる)コレクションは全てSeqです。(SeqでないコレクションにはMapやSetがあります) Seqはscala.collection下にあるので、VectorだろうとMutableListだろうとSeqです。メソッドや関数の引数の型には、特別な理由がない限り、取りうる型の範囲を狭めてしまうListなどよりSeqを指定したほうが良さそうです。 scala> Seq res0: scala.collection.Seq.type = scal

    [scala]なぜListではなくSeqを使うべきなのか - Qiita
    cocoasynn
    cocoasynn 2017/04/27