タグ

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

  • Pythonではじまる、型のある世界 - Qiita

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

    Pythonではじまる、型のある世界 - Qiita
  • PowerShellでdllを読み込む際の注意点 - Qiita

    PowerShellでAdd-Type -Path等でdllを読み込む際、「新しすぎて読み込みません」というようなメッセージが出ることがある。 原因はPowerShellが使用している.NET Framework。たとえPC(サーバー)に最新の.NET Frameworkが入っていても、PowerShellが使用するのは旧態依然の2.0なのだ。 このため、新しいフレームワークで追加されたクラス、ビルドされたdllを読み込もうとすると上記のエラーが発生する。 互換性のための措置と思われるが、正直有難迷惑なので動作する.NET Frameworkのバージョンを変更することにする。 PowerShellのインストールディレクトリ(powershellを起動し、$pshomeで確認可能)に、下記のようなconfigファイルを配置する。 <?xml version="1.0"?> <configur

    PowerShellでdllを読み込む際の注意点 - Qiita
  • WindowsではじめるScala - Qiita

    的にはここに書かれている。 そしてまとめてみたら意外と分量があった。 http://www.scala-lang.org/download/ 1.Java 1.6以上のインストール ScalaはJVM上で動くので、Javaの環境が必要。そんなわけで、java と打って返事がないただの屍のようだ、となるか1.6未満の場合Javaをインストールする(※前提JREは今後変わる可能性もあるので、この辺りはインストール前によく確認)。 こちらからJava Platform (JDK) をダウンロード。 http://www.oracle.com/technetwork/java/javase/downloads/index.html 余談だが、Java、ダウンロードサイズ120MBというのはいかがなものか。開発環境じゃあるまいに・・・ Scalaも60MBあるので、こやつらを合計するとEclip

    WindowsではじめるScala - Qiita
  • きみはTensorFlowでフレンズをとらえて揃えてたのしー!アプリなんだね! - Qiita

    メリークリスマス。フレンズのいない家でファミチキを一人べる寂しさに怯えてはいませんか? フレンズは待っていてもやってきません!外に出てフレンズを捕まえよう!そう思い立ち開発されたのが今回紹介するクソアプリ、「けものぷよ」です。 Special Thanks to けものフレンズ たのしいしくみ 外に出る 手持ちの携帯でフレンズを取る フレンズが落ちてくる フレンズが3つそろうと消える たのしー! (きえてしまってはフレンズが集まらないのでは・・・という指摘は受け付けません。かれらは夢のパークへいったのだと思います)。 たのしいアーキテクチャ 写真を撮る IFTTTで画像を転送 TensorFlow Object Detection APIでフレンズを発見する 物理エンジンでフレンズが落ちてくる たのしー! たのしいを実現するフレンズ TensorFlow Object Detection

    きみはTensorFlowでフレンズをとらえて揃えてたのしー!アプリなんだね! - Qiita
  • 大自然言語時代のための、文章要約 - Qiita

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

    大自然言語時代のための、文章要約 - Qiita
  • 画像処理の数式を見て石になった時のための、金の針 - Qiita

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

    画像処理の数式を見て石になった時のための、金の針 - Qiita
  • ディープラーニングの判断根拠を理解する手法 - Qiita

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

    ディープラーニングの判断根拠を理解する手法 - Qiita
  • 機械学習の論文を読んでみたいけど難しそう、という時に見るサイト - Qiita

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

    機械学習の論文を読んでみたいけど難しそう、という時に見るサイト - 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

    昨今の対話システムの盛り上がりから、人とコミュニケーションを取るようなロボットを開発したい・・・!と思う方も多いのではないかと思います。 私自身、以前対話ロボットの研究開発をしていました。そこで直面したのは、LINETwitter上で動く対話ボットと異なり、物理で存在するロボットは音声認識の問題や、人の動きといった「対話外」の情報をどう活用するかなど、とても多くの考慮点があるということでした。 そこで、記事ではその研究をしていく中で得た知識を展開(供養)しようと思います。これから人のパートナーとなるようなロボットの開発をする方にとっての参考となれば幸いです。 研究領域の全体像 まず、対話ロボットにおける研究領域の全体像は以下のような形になります。 Observation 近づいて来る人や周辺環境(天気・時刻など・・・)を観測し、置かれている状況の情報を更新する Request Unde

    人と対話するロボットを開発するための、研究ガイド - Qiita
  • FacebookのfastTextでFastに単語の分散表現を獲得する - Qiita

    「フランス」-「パリ」+「東京」=「日」 こんな単語同士の演算ができる、と話題になったのがGoogleが発表したWord2Vecです。これは端的に言えば単語を数値で表現する技術で、これにより単語同士の「近さ」を測ったり、上記のような演算をすることが可能になります。この、単語を数値表現にしたものを分散表現と呼びます。 今回紹介するFacebookの発表したfastTextはこのWord2Vecの延長線上にあるもので、より精度が高い表現を、高速に学習できます。稿ではその仕組みと日語文書に対しての適用方法について解説していきます。 fastTextの仕組み fastTextでは、Word2Vecとその類型のモデルでそれまで考慮されていなかった、「活用形」をまとめられるようなモデルになっています。具体的には、gogoes、そしてgoing、これらは全て「go」ですが、字面的にはすべて異なる

    FacebookのfastTextでFastに単語の分散表現を獲得する - Qiita
  • 転移学習:機械学習の次のフロンティアへの招待 - Qiita

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

    転移学習:機械学習の次のフロンティアへの招待 - Qiita
  • Slackにより断片化した集中タイムを取り戻すための、Bot開発 - Qiita

    Slackは、チーム内のコミュニケーションを取るためにはとても便利なツールです。 しかし、おそらくあなたが気付いているように、Slackはあなたの「集中タイム」を断片化します。投稿をしたら反応が気になる、投稿をしていなくてもどんな話題が交わされているのか気になる、時には重要な情報が飛んで来ることもあるから見逃せない・・・こうして、Slackのタブに灯る「*」マークは一瞬にして集中していた作業時間をストップさせてしまいます。 堅苦しい会議も時間の無駄になりがちですが、その一方でこうしたチャットツールによる「コミュニケーションの断片化」もまた問題であると言えます。 そこで今回考案したのが、Slack Refereeです。これは、端的にはSlackチャンネルを休憩スペースにするというアイデアです。つまり、休憩時間中だけ会話が可能で、それが終わったら作業を行う集中タイムに戻る、ということです。 コ

    Slackにより断片化した集中タイムを取り戻すための、Bot開発 - Qiita
  • 人工知能関連ニュースの、実際のところシリーズ - Qiita

    最近「人工知能が~」というニュースが山のように出てきますが、その中にはだいぶ誇張された表現のものも少なくありません。 人工知能関連の技術に注目が集まるのは、研究資金の増加や案件の発生という面では良いことです。しかし、「仕事が奪われるぞ!」みたいな過度な不安を煽ったり、「人工知能だったら何でもできるんやろ?」といった過度な期待を煽ってしまうことで、実体とはかけ離れた議論や誤解を生んでしまうという面もあります。 稿では、目についた中で大きな誇張があるニュースを取り上げるとともに、その実際のところはどうなのか?について紹介をしていきたいと思います。記事が、冷静な議論と共に背景となる技術的な面への興味の喚起となれば幸いです。 日経のAI記者が始動、1日30の決算サマリーを量産 同僚が人工知能という世界が現実のものになろうとしている。 人工知能は人の仕事を奪うことになるのか、あるいは型にはまっ

    人工知能関連ニュースの、実際のところシリーズ - Qiita
  • 機械学習モデルの実装における、テストについて - Qiita

    数あるフレームワークに付属するExample、機械学習モデルを実装してみた、という話。これらに共通して言えるのは「テストがない」ということです。 機械学習のモデルだって、アプリケーションに組み込まれればプロダクションコードの一部です。テストがない実装を番環境に組み込むか?というと通常そんなことありえないと思います。 (スタジオジブリ 紅の豚 より拝借) 忘れられがちな点ですが、機械学習モデルは「リリースした瞬間」が最高精度になります。なぜなら、リリースした瞬間こそがその時点で手に入るフルフルのデータを使って鍛え上げたモデルであり、それ以降はどんどん未知のデータが入ってくるためです。 そのため、モデルの精度、また妥当性をいつでも検証できるようにしておくというのはとても重要です。これは通常のコードにテストをつける理由と同等で、つまり機械学習モデルだからと言って特別ではないということです。

    機械学習モデルの実装における、テストについて - Qiita
  • TensorFlowをWindowsでビルドする - Qiita

    ※0.12から公式でWindowsビルドが提供されるようになりました! Release 0.12.0/Major Features and Improvements 最近(たぶん2016/10ぐらいから)、TensorFlowがWindowsでビルドできるようになりました。 以下に、CMakeを利用したビルドの手順が公開されています(ただ、今後はbazelへ移行すると思われます)。 tensorflow/tensorflow/contrib/cmake/README.md かなり丁寧に書かれているので、基的にはこの通り行っていけばビルド、またPythonラッパーの生成を行いWindowsネイティブでPython x Tensorflowを使用することができます。 ただ、ビルドに結構時間がかかるので、手っ取り早く使いたい方は以下に私がビルドしたものを置いてありますので、使ってみてください。

    TensorFlowをWindowsでビルドする - Qiita
  • LSTMを超える期待の新星、QRNN - Qiita

    RNN「これってもしかして」 CNN「わたしたちのモデルが・・・」 「「入れ替わってる~~~!?」」 というわけでQRNN、QUASI-RECURRENT NEURAL NETWORKSとは、RNNの機構をCNNで「疑似的(QUASI)に」実装するというモデルです。これにより、既存のRNN(というかLSTM)が抱えていたいくつかの問題の解決を試みています。 元論文は以下となります。 QUASI-RECURRENT NEURAL NETWORKS 作者によるブログ 作者の方のブログにChainerのサンプルコードがあったので、それを元にTensorFlowで実装してみました。早く動かしたい!という方はこちらを見てみてください。 icoxfog417/tensorflow_qrnn (Starを頂ければ励みになります m(_ _)m) 記事では、この研究のモチベーションとそのアプローチについ

    LSTMを超える期待の新星、QRNN - Qiita
  • ゼロからDeepまで学ぶ強化学習 - Qiita

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

    ゼロからDeepまで学ぶ強化学習 - Qiita
  • Convolutional Neural Networkを実装する - Qiita

    Deep Learning系のライブラリを試すのが流行っていますが、Exampleを動かすのはいいとしても、いざ実際のケースで使おうとするとうまくいかないことがよくあります。 なんとか動かしてみたけれど精度が出ない、データの加工の仕方が悪いのか、モデルのパラメーターが悪いのか、原因がぜんぜんわからん・・・という事態を乗り越えるには、やはり仕組みに対する理解が必要になってきます。 そんなわけで、編では画像の用意という一番最初のスタートラインから、Chainerで実装したCNNを学習させるところまで、行うべき手順とその理由を解説していきたいと思います。 前段として理論編を書いていますが、ここではライブラリなどで設定しているパラメーターが、理論編の側とどのようにマッチするのかについても見ていきたいと思います。 なお、今回紹介するノウハウは下記リポジトリにまとめています。画像認識を行う際に役立て

    Convolutional Neural Networkを実装する - Qiita