タグ

ブックマーク / qiita.com/icoxfog417 (20)

  • 大自然言語時代のための、文章要約 - Qiita

    さまざまなニュースアプリ、ブログ、SNSと近年テキストの情報はますます増えています。日々たくさんの情報が配信されるため、Twitterやまとめサイトを見ていたら数時間たっていた・・・なんてこともよくあると思います。世はまさに大自然言語時代。 from THE HISTORICAL GROWTH OF DATA: WHY WE NEED A FASTER TRANSFER SOLUTION FOR LARGE DATA SETS テキスト、音声、画像、動画といった非構造データの増加を示したグラフ そこで注目される技術が、「要約」です。膨大な情報を要点をまとめた短い文章にすることができれば、単純に時間の節約になるだけでなく、多様な視点から書かれた情報を並べて吟味することもできます。 文書は、この文書要約(Text Summarization)についてその概観を示すことを目的として書かれていま

    大自然言語時代のための、文章要約 - Qiita
  • ディープラーニングの判断根拠を理解する手法 - Qiita

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

    ディープラーニングの判断根拠を理解する手法 - Qiita
  • 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
  • Pull Requestに潜むタイポを自動的に検出し、修正を代行するBot - Qiita

    いざPull Requestのレビュー!と挑んだ瞬間、「ここタイポな」という先制パンチをくらうのはとても残念なことです。 また、これは指摘しているほうにとってもチェックが負担で、気が重いものです。 人間は人間にしかできないチェックに集中すべきですし、貴重なレビュー時間を誤字脱字の修正に使うのはもったいないです。そこで開発したのが、タイポの自動検知と修正を代行するBot。その名もtypotです。 chakki-works/typot こちらは先日公開がアナウンスされたGitHub Marketplaceと共に公開された、新しいGitHubアプリの形態であるGitHub Appsで作成しています(それまではWebhookかOAuthだった)。 GitHub AppsはOAuthのようにユーザーではなく、リポジトリにひもつく形態になります。そのため、管理者ユーザーがいなくなった(あるいは権限を失

    Pull Requestに潜むタイポを自動的に検出し、修正を代行するBot - Qiita
  • 「わかりやすさ」に注目した、機械学習による技術ブログの検索 - Qiita

    新しい技術を身に付けたい!と思って検索をしても、検索上位に来る記事が「わかりやすい」かというとそうではない、ということはよくあります。 記事のビュー数、またQiitaのいいね数やはてブ数は、この参考にはなりますが体感として高ければいいというものでもない印象です。 そこで、こうした文章の「評判」だけでなく、文章そのものの構成や書き振りなどに注目して、その「わかりやすさ」を評価できないか?ということで実験的に行ってみたものが以下の「Elephant Sense」になります。 chakki-works/elephant_sense (Starを頂ければ励みになりますm(_ _)m) ※名前の由来は、象の感覚って実はものすごいらしいという話から 開発に際しては基的な自然言語処理/機械学習の手続き踏んで行ったので、その過程を記事でご紹介したいと思います。 ゴール 事前にQiitaの記事を対象に、

    「わかりやすさ」に注目した、機械学習による技術ブログの検索 - Qiita
  • 転移学習:機械学習の次のフロンティアへの招待 - Qiita

    機械学習を実務で使う場合、「ではお客様、ラベルデータを・・・」と申し出て色よい返事が返ってくることはあまりありません。また、例えば自動運転車を作るときに、データが足りないからその辺流してくるか、お前ボンネットに立ってデータとってな、とするのは大変です。 NICO Touches the Walls 『まっすぐなうた』 より そこで必要になってくるのが転移学習です。 転移学習とは、端的に言えばある領域で学習させたモデルを、別の領域に適応させる技術です。具体的には、広くデータが手に入る領域で学習させたモデルを少ないデータしかない領域に適応させたり、シミュレーター環境で学習させたモデルを現実に適応させたりする技術です。これにより、少ないデータしかない領域でのモデル構築や、ボンネットに立つという危険を侵さずにモデルを構築することができるというわけです。 この転移学習の可能性は、NIPS 2016

    転移学習:機械学習の次のフロンティアへの招待 - Qiita
  • 機械学習の環境を構築するのにAnacondaをインストールする必要はない。Minicondaを使おう - Qiita

    Python機械学習の環境を作る、というと山のように「Anacondaをインストールせよ」という記事が出てきますが、実際環境構築はMinicondaというAnacondaの最小構成版で十分です。 ということを伝える記事です。 最速で機械学習の開発環境を作る方法 基は以下で十分です。 Minicondaをインストールする(※もちろんPython3の方をインストールして下さい) conda create -n ml_env numpy scipy scikit-learn matplotlib jupyterで開発環境を作成 activate ml_envで作成した開発環境を有効化 実際はMacWindowsかなどで微妙な差異があるので、詳細はこちらを参照して下さい。 Python機械学習アプリケーションの開発環境を構築する また、開発環境を作成するcondaコマンドの使い方については

    機械学習の環境を構築するのにAnacondaをインストールする必要はない。Minicondaを使おう - Qiita
  • Pythonを書き始める前に見るべきTips - Qiita

    Pythonを使ってこの方さまざまな点につまずいたが、ここではそんなトラップを回避して快適なPython Lifeを送っていただくべく、書き始める前に知っておけばよかったというTipsをまとめておく。 Python2系と3系について Pythonには2系と3系があり、3系では後方互換性に影響のある変更が入れられている。つまり、Python3のコードはPython2では動かないことがある(逆もしかり)。 Python3ではPython2における様々な点が改善されており、今から使うなら最新版のPython3で行うのが基だ(下記でも、Python3で改善されるものは明記するようにした)。何より、Python2は2020年1月1日をもってサポートが終了した。よって今からPython2を使う理由はない。未だにPython2を使う者は、小学生にもディスられる。 しかし、世の中にはまだPython3に

    Pythonを書き始める前に見るべきTips - Qiita
    lEDfm4UE
    lEDfm4UE 2016/11/27
  • ゼロからDeepまで学ぶ強化学習 - Qiita

    ロボットから自動運転車、はては囲碁・将棋といったゲームまで、昨今多くの「AI」が世間をにぎわせています。 その中のキーワードとして、「強化学習」というものがあります。そうした意味では、数ある機械学習の手法の中で最も注目されている(そして誇張されている・・・)手法ともいえるかもしれません。 今回はその強化学習という手法について、基礎から最近目覚ましい精度を出しているDeep Q-learning(いわゆるドキュン、DQNです)まで、その発展の流れと仕組みについて解説をしていきたいと思います。 記事の内容をベースに、ハンズオンイベントを開催しました(PyConJPのTalkの増補改訂版) Pythonではじめる強化学習 OpenAI Gym 体験ハンズオン 講義資料の方が図解が豊富なので、数式とかちょっと、という場合はこちらがおすすめです。 Tech-Circle #18 Pythonではじ

    ゼロからDeepまで学ぶ強化学習 - Qiita
    lEDfm4UE
    lEDfm4UE 2016/06/09
  • 画像処理の数式を見て石になった時のための、金の針 - Qiita

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

    画像処理の数式を見て石になった時のための、金の針 - Qiita
    lEDfm4UE
    lEDfm4UE 2016/02/11
  • TensorFlowを算数で理解する - Qiita

    TensorFlowは主に機械学習、特に多層ニューラルネットワーク(ディープラーニング)を実装するためのライブラリになりますが、その基的な仕組みを理解するのにそうした難しい話は特に必要ありません。 記事では、TensorFlowの仕組みを、算数程度の簡単な計算をベースに紐解いていきたいと思います。 TensorFlowの特徴 初めに、TensorFlowの特徴についてまとめておきたいと思います。 TensorFlowは、その名前の通りTensor(多次元配列、行列などに相当)のFlow(計算処理)を記述するためのツールです。その特徴としては、以下のような点が挙げられます。 スケーラビリティ PC、サーバー、はてはモバイル端末まで、各マシンのリソースに応じてスケールする。つまり、低スペックなものでもそれなりに動くし、GPUを積んだハイスペックなサーバーであればそのリソースをフルに活用した

    TensorFlowを算数で理解する - Qiita
  • Pythonではじまる、型のある世界 - Qiita

    アノテーションを実際に行っているのは以下の部分になります。 name: str: 引数nameが、str型であることをアノテート -> str: 関数greetingの返り値の型がstrであることをアノテート また、Type Hintsでは変数宣言における型コメントについても言及されています。 こちらは構文ではなく当にコメントの拡張になりますが、現在既にこうした型に関するコメントを付けているのであれば、上記の記法に乗っ取っておけば将来的に何かしらのツールで型チェックを行えるようになる可能性があります。 これがPythonに導入された、型のある世界・・・になります。 なお、付与されたアノテーションは、実行時にはチェックされません。端的に言えばコメントの延長となります。 そのため強制力はありませんが、実行時に何もしないためパフォーマンスに影響を与えることもありません。 よって原則的には静的解

    Pythonではじまる、型のある世界 - Qiita
  • Pythonで機械学習アプリケーションの開発環境を構築する - Qiita

    Python機械学習アプリケーションの開発環境、具体的にはNumpy/Scipy/scikit-learnを導入する手順について解説します。 なお、環境はPython3ベースを想定しています。 Minicondaベース(推奨) 機械学習系のパッケージはコンパイルが面倒なものが多いため、コンパイル済みバイナリをインストールできるconda(Miniconda)での環境構築を推奨します。 まずはPython体(Python3想定)、パッケージ管理ツールであるpip、仮想環境を作成するvirtualenv、といった基的な環境の構築を行います。 ※virtualenvについては今回(condaを使う場合)は不要ですが、Pythonで開発を行うなら入れておくべきパッケージなので併せて入れておきます。 Mac/Linux デフォルトのPythonと分けてインストールするため、pyenvを利用しま

    Pythonで機械学習アプリケーションの開発環境を構築する - Qiita
  • React.js 実戦投入への道 - Qiita

    最近話題のReact.jsですが、実戦投入に当たっては結構重たい選択を迫られることになります。 ざっくり言えば、テンプレートエンジンを捨ててReactしますか?それともReactあきらめますか?という選択です。 記事ではReactの基思想とこうした選択肢が生まれてしまう背景を述べるとともに、後半では「どちらもあきらめない」という(若干シミュレーションRPGあるある感のある)第三の方策について案を提示します。 Reactの基 最初に、Reactの基的な仕組みについてまとめておきます。 Reactは公式ドキュメントが非常に充実しているので、始める際はぜひQuick Startのドキュメントに目を通すことをお勧めします。 Getting Started Tutorial Thinking in React 後述しますが、Reactを使ってアプリケーションを作る際の設計方法についての記載が

    React.js 実戦投入への道 - Qiita
  • 2015年のJavaによるWeb開発 - Qiita

    最近Javaしてますか? 昔はServletとJSPでやったな・・・Seasar2には感動したっけ、そんな思い出が浮かんだとしたらあなたのJavaはJ2EE、JavaEE的には5.0ぐらいで止まっているといわなければなりません。 ※Seasar2は2016/9/26にサポートが停止になります。OSSであるためforkされメンテナンスが続く可能性はありますが、一つの時代の区切りになると思います。 あれからJavaも進化を重ね、最新版のJavaEE7.0では他言語のフレームワークの生産性にも引けを取りません。 まだJavaやってるの(苦笑)の時代が長すぎたのか、2013年のリリースにもかかわらずJavaEE7.0についての記事は充実しているとは言えない状況です。ただ、その仕組みは素晴らしいものがあるのでこれを機に久々にJavaでもやってみるかなと思ってもらえれば幸いです。 ※2017/9/21

    2015年のJavaによるWeb開発 - Qiita
  • Vue.jsから手軽に始めるJavaScriptフレームワーク - Qiita

    Vue.jsはそのまま使ってもよいですが「自分(プロジェクト)に合ったフレームワーク」を見つけるのにも向いています。 これは、後発フレームワークだけあり各フレームワークの特徴を意識した設計がなされているためです。他の著名なフレームワークとの特徴を比較した文書もあるので、こちらをチェックしながら導入を検討するとよいと思います。 そのため、以下はVue.jsの紹介と他フレームワーク(Knockout.js と Angular)へのステップという2セクションに分けて紹介していきたいと思います。 JavaScriptフレームワークの導入を行いたいがこの選択は慎重にいきたい、という状況であれば最初にVue.jsを試金石としてみて、効果的と感じられる機能からAngularやKnockout.jsに流れていくというのは十分ありだと思います。 2016/06: Vue.jsの1.x系に合わせて記述・サンプ

    Vue.jsから手軽に始めるJavaScriptフレームワーク - Qiita
  • Angular.jsで実践 アニメーション - Qiita

    スライドの動きやフリック時の画面遷移、昔アニメーションといえばゲームなイメージでしたが、モバイル端末が登場して以来結構身近なものになりました。 ただ、身近だから簡単というわけでもなく、動作にアニメーションをつけるのは結構面倒。「これちょっとさ、下からひゅっと出てくる感じにしてよ」と言われてそんな簡単じゃないんだよとイラッとすることもあるだろう。 「アニメーションはもうデザインみたいなもんだし、CSSで書いてよろしくやってくれたらな・・・」とJQueryで実装しながら見るはかない夢・・・を現実にしてしまうのが、Angular.jsのng-Animateなのであります! 準備 アニメーションを使用するには、angular.js体意外にangular-animate.jsが必要となります。Googleがホスティングしてくださっているので、ありがたく使わせていただきましょう。 Google Ho

    Angular.jsで実践 アニメーション - Qiita
  • お前のAngular.jsはもうMVCではない。と言われないためのTutorial - Qiita

    JavaScriptフレームワークに興味あるし、Angular.jsを使ってみようかな・・・ そんな純真無垢なあなたを混沌の世紀末に引きずり込むのが、ほかでもないTutorialなのです。 TutorialではほぼControllerしか出てこないので、素直にこの通り書いているとまず間違いなく3カウントでControllerにコードが集中するいわゆるFat Controllerになり、せっかくMVCフレームワークも地獄の荒野になります。 実は、Angular.jsでまず目を通すべきなのはDeveloper GuideのConceptual Overviewです。これを読めばどう処理を分割するかがきちんと書かれていますが、以下ではそれ+経験をもとにAngular.jsで正しくMVCを使用するためのポイントをまとめました。 Angular.jsの3原則 1.Controllerはイベントハンド

    お前のAngular.jsはもうMVCではない。と言われないためのTutorial - Qiita
  • JavaScriptのGridライブラリ決定版 - SlickGrid - Qiita

    正直、表示だけするならどれも高機能で大差ないと思う。 ただ、多くのグリッド系ライブラリは、高機能な代わりに遅い&書きにくかったり、編集機能はあるものの表示→編集モードへの切り替えがもっさりしていたり保存機能が書きにくかったりする。 その中で高速な表示、Excelかのような編集機能を備えているのがSlickGridだ。 「Excelみたいにできないの?」とはよく言われることでその言葉にそんな簡単じゃねーんだよ、とイラッとしたことがある人も多いかと思うが、SlickGridを使うことでお互いストレスフリーな関係を築けるだろう。 では、SlickGridのパワーが実感できる例を紹介したい。 1.パフォーマンス このExampleで表示しているデータは、なんど500,000件である。他のグリッドが数万件表示可能!と言っているそばで、ケタが違う。何せExcel(2003)の限界行より多いんだからビッ

    JavaScriptのGridライブラリ決定版 - SlickGrid - Qiita
  • 新・三大JavaScriptフレームワークの実践(Backbone.js Knockout.js Angular.js) - Qiita

    Todoリストの機能 1.テキストボックスから、Enterで追加できる 2.登録したTodoはダブルクリックで編集可能になり、Enterで編集確定できる 3.登録されているTodoの総件数がフッターに表示される 4.完了したTodoがある場合、それらをリストから消すボタンが表示される 5.全選択/解除を行うチェックボックスがある 個人的な結論 趣味開発で使うならAngular.js・仕事で使うならKnockout.jsをお勧めしたい。 まず、フレームワークを選択する際は、以下3つの選択基準を持つとよいと思う。 1.開発の規模 大規模ならBackbone.jsはお勧めできる。 書き方が決まっていて、チュートリアルに目を通せば(面倒なのは置いておいて)何を作らなければならないかは簡単に理解できる。そこそこの人数で長い時間の開発を行うなら、UIチームはアプリケーションとView、サーバーサイドは

    新・三大JavaScriptフレームワークの実践(Backbone.js Knockout.js Angular.js) - Qiita
  • 1