サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Appleイベント
qiita.com/FukuharaYohei
BERTを勉強していてTransformerについて整理しました。モデル部分は理解しましたが、訓練ジョブを流す部分などはほとんど見ていないですし解説もしていません。 seq2seqについては記事「【Keras入門(7)】単純なSeq2Seqモデル定義」で以前解説をしました。 seq2seqとAttentionについては記事「[Attention入門]seq2seqとAttentionの解説(TensorFlow)」で解説しました。 もともとは以下のオンライン講座を受講していて、Transformerに関する理解を深めようとしたのがきっかけでした(オンライン講座にはTransformerについても含んでいたが、より深く理解したいと考えました)。 以下のTensorFlowのチュートリアルを使って学習しました。学習途中にチュートリアルが更新され、この記事と一部違う点があります。 理解にあたり以
Kaggleで入門である「タイタニックコンペティション」に挑戦しました。だいたい、目安である8割超えを達成しました。1から2ヶ月程度で終わらせようと思っていたのですが、勉強しつつやったら半年以上かかってしまいました。試したことがなかなか精度向上につながらず、想像以上に厳しかったです。 サマリ いろいろなモデル試したり、ハイパーパラメータの調整していけば、ガンガン精度が上がるかと思っていましたが、まるでそんなことなかったです。一番、有効だったのは特徴量エンジニアリング。前処理は重要ですね。 期間: 7ヶ月程度。途中忙しかったり別の勉強をしたいた期間あり。 時間合計: 多分150時間くらい使っている気がします。今回計測していないので大きくずれている可能性あり。 進め方: 最初はKaggleに慣れながら、とにかくデータ探索。いろいろ特徴量エンジニアリングをして様々なモデルを試す。一通りやりきった
Pandasの DataFrame でSettingWithCopyWarningの警告の意味と対処方法について書きます。 DataFrame使っているとSettingWithCopyWarningによく遭遇していました。その度にその場しのぎの修正をして対応していましたが、さすがにそろそろ根本的に理解しないと時間がもったいないと思い、この記事で整理しました。 公式Pandasのヘルプと偉大な先人が書いてくれた以下の記事が非常にわかりやすいです。この記事では、簡潔に内容を書きます。 結論 結論から先に述べます。 暗黙のCopyをやめる。そのためにChain Indexingをやめる。警告をなくすにはそれだけです。 現象 SettingWithCopyWarningが起こる一例を最初に紹介します。 シンプルなDataFrameを作ります。 import pandas as pd df = pd
手法 1. Filter Method Filter Methodは統計的な手法(分散やχ二乗検定など)で特徴量の評価・選択をします。他の手法に比べると計算量が少なく、最初に足切りで実施するものだと考えています(経験浅いのであまり根拠なし)。 1.1. 低分散変数の削除 分散が低ければ、説明変数としての意味ないと考え特徴から削除する方法です。VarianceThreshold関数を使います。 今回の例では分散0としており、まったく変動していない特徴を対象とします。ベルヌーイ分布の分散であるp(1 − p)を使うのもありかと思います。 分散0はPandasのget_dummies関数でオプションdummy_naを使った時に出てしまいました。欠損値がある特徴があったため、get_dummies関数を使ったのですが、欠損値がない特徴量もNaNの列ができてしまい、すべて値が0で分散が0の列ができて
PandasのDataFrameはたまにしか使っていませんでした。いつもググりながら使っていましたが、本格的に使うに当たり、整理をしてみました。query関数でできることや注意点、ブールインデックスとの比較などを整理しています。 似た内容として記事「DataFrameレシピ: 行列指定して出力」にloc、ilocプロパティなどを使った行列指定方法も書いています。 まとめ(早見表) 私が参照したい部分を一番上に持ってきました。全般的にquery関数の方がシンプルに記述できますが、文字列はブールインデックスの方がやや読みやすいです。 文字列・数値共通 条件 query ブールインデックス
「はじめてのパターン認識」、通称「はじパタ」の第2章の解説です。 13ページ程度のくせに読み解くのに時間をかなりかけました・・・ 躓きポイントは2点あって、ブートストラップ法で書かれている計算式、最後のバイアス・分散分解です。マクローリン展開など文系人間にとっては難しい内容も含んでいて時間がかかります。 改めて機械学習のハードルの高さを感じますが、Coursera機械学習入門コースや数学勉強をしておいてよかったと改めて感じました! ※はじパタ勉強系は記事「文系社会人がはじパタで機械学習を数式含めて理解した奮闘記」にまとめました。 内容 2.1. 識別規則と学習法の分類 2.1.1. 識別規則の構成法 識別規則は、入力データ$x$からクラス$C_i \in \Omega = \{ C_1, \ldots, C_k \}$への写像である さっそく理解し難い文が出てきました。入力データ$x$に識
分類問題の評価指標の言葉の定義に関するメモです。いつも、やるたびにググって思い出しているので、記憶を定着させるために作りました。さすがにそろそろ 「覚えるぞ」という意思を込めて結構、力を入れました 混合行列(Confusion Matrix)とTP, FP, FN, TN まずは基本の基本から。二値分類の正解・不正解の種類です。 TP(True Positive)、FP(False Positive)、FN(False Negative)、TN(True Negative)の4種類です。 1文字目:T(True)は予測正解、F(False)は予測不正解。 2文字目:Pは予測が正(Positive)、Nは予測が負(Negative) TP、FP、FN、TNのマトリックスを混合行列(Confusion Matrix)と呼びます。下の混合行列で太字部分(TPとTN)は正解です。太字でないFPとF
Conda(Anaconda/Miniconda)を使わない期間が長くて忘れることも多く、備忘録として書きます。 conda環境のアップデート 定期的によく使うので頭に別出しで書いておきます。 事前に対象環境をActivateしておきましょう(baseの場合不要)。 昔は"source activate"でしたが、4.4から"conda activate"に変わったようです。
Kerasで複数の情報を入力して、途中で結合する方法を紹介します。 この方法は、例えば以下のように画像とテキストを使って予測モデルを作る場合などに有効です。リンク先参考。 ImageDataGeneratorを使いつつ統合する方法は、記事「KerasのImageDataGeneratorを使いつつ複数Input統合モデル」を参照ください。 処理概要 以前、記事「【Keras入門(1)】単純なディープラーニングモデル定義」で紹介した以下の図の配列dataを2つに分解して統合するモデルにしてみます。 処理プログラム プログラム全体はGitHubを参照ください。 ※なぜか直接GitHubで見られずに、nbviewerなら参照できました。nbviewerにhttps://github.com/YoheiFukuhara/keras-for-beginner/blob/master/Keras09_
Pythonである程度しっかり開発することになり、ログ出力について学習しました。2時間くらいで終わらせようと甘く見ていたら、理解に1日以上かけてしまいました。そのくらいprintの次ステップは単純ではなかったです。 記事「ログ出力のための print と import logging はやめてほしい」を読み、全てはないですがエッセンスは理解できたと考えています。 他にも以下の記事は結構読みました。 Python公式 - Logging HOWTO Good logging practice in Python ロギング — The Hitchhiker's Guide to Python - Python ヒッチハイク・ガイド GitHubに今回のコードをのせています。 はじめに - printでもいい場合と卒業する場合 printは簡単にメッセージ出力できるのが良い点です。logging
Pythonを今まで適当に書いてきましたが、プログラムをしっかりと作りたいと考え、いろいろ勉強・調査しました。そこで学んだことをこの記事に書きます。 参考情報 Google Python Style Guide: 全部読み切れていませんが、いいこと書いてあります。 エキスパートPythonプログラミング改訂2版: 初中級というより中級者向け。読み飛ばしている部分も多いですが、懐に置いておいて必要時に読みたい本。一皮むけたい人にはとてもおすすめ。 コーディング規約 PythonにはPEP8というコーディング規約があります。せっかくあるので従うべきでしょう。PyCharmのようなIDEを使うと警告を出してくれるので効率よくPEP8に準拠したプログラムを書くことが出来ます。 私感で重要と考えるものだけ簡潔に抜粋しておきます。 コードのレイアウト 1レベルインデントするごとに、スペースを4つ使う
入門者に向けてKerasの初歩を解説します。 Google Colaboratoryを使っているのでローカルでの環境準備すらしていません。Google Colaboratoryについては「Google Colaboratory概要と使用手順(TensorFlowもGPUも使える)」の記事を参照ください。 以下のシリーズにしています。 【Keras入門(1)】単純なディープラーニングモデル定義 <- 本記事 【Keras入門(2)】訓練モデル保存(KerasモデルとSavedModel) 【Keras入門(3)】TensorBoardで見える化 【Keras入門(4)】Kerasの評価関数(Metrics) 【Keras入門(5)】単純なRNNモデル定義 【Keras入門(6)】単純なRNNモデル定義(最終出力のみ使用) 【Keras入門(7)】単純なSeq2Seqモデル定義 使ったPyth
TensorFlow Object Detection APIで教師データを作るためのツールlabelImgと使い方とTFRecordフォーマットへの変換方法の紹介です。 「Preparing Inputs」を参考にしています。 2019/8/29追記:VoTTというアノテーションツールは非常に良く、そちらの方がおすすめ。TFRecord形式で直接出力でき、インストールもお手軽です。簡単すぎて記事に書く気もしません。Windowsでしか試しておらず、MacやLinuxでも簡単かはわからないです。 関連記事 TensorFlow Object Detection APIをUbuntuにインストール Object Detection APIを使って堀川君を検知 Object Detection APIのsaved_model出力 Access Tokenを取得してGoogle Cloud ML
以前から噂に聞いていたGoogle Colaboratoryを使ってみました。まだ深くは使ってませんが、非常に便利です。Pythonが手軽にクラウド上で実行できます。Jupyter Notebookのクラウド版だと思ってください。 今までAnaconda/Minicondaなどを使ってローカル環境を作っていましたが、それすら不要になるとは・・・敷居の低さに驚きです 記事「TensorFlowをWindowsにインストール Python初心者でも簡単だった件」や「WindowsでMinicondaを使ってTensorFlow環境構築(2018年)」で書いた内容よりも遥かにお手軽です。 Windowsでの環境比較は、記事「Windows PCで機械学習環境を作る方法まとめ」に書きました。 感想 良い点 環境構築しなくていいのが楽!condaやpipコマンドしないですぐに使えるのが最高です。 デ
RPAソフトであるUiPathを使ってExcel読込と書込をする基本操作の解説です。だいたい1時間もあれば作れます。 以下はUiPath関連記事です。 初心者でもできるWindows10へUiPath(RPA)インストールと実行 【入門者向け】UiPath(RPA)でFlowchart作成 実行環境 Windows10 Pro 64bit UiPath Studio Community Edition 2017.1.6522 Excel統合パッケージインストール Communityバージョンでなければデフォルトでインストールされているようです。 https://www.uipath.com/kb-articles/excel-integration-approaches ActivitiesペインからManage Packagesアイコンを押します。 Available -> All を選
統計の学習をすると、難しい数式が出てきて躓くことも多々あると思います(経験談)。「入門」とつくタイトルの本であっても、数学当然知っているよ人間が書いていて、全然理解できないことが多いハズ。 筆者もそんな状態から2年間、試行錯誤をしながら学習し、「入門した!」ぐらいは自信を持って言えるようになりました。ただ、入門しただけなので、それより先は未知の分野です。 2年前の自分自身にアドバイスするつもりで、この記事を書きます。 関連する記事は以下のとおりです。 文系卒社会人が統計・機械学習を理解するための数学勉強方法 高校数学復習を終えると統計学の入門ができるのか? 文系卒社会人が統計入門でのモヤモヤを克服した話 時間と目的別学習方法 統計の裏には数学が密接に関連しています。しかし、数学はどうしても苦手な人もいますし、全ての統計を学習する人が数学のような時間がかかる基礎レベルから理解する必要はないと
TensorFlowおよびCNN(畳み込みニューラルネットワーク)を理解するために柏木由紀さんの顔特徴を調べてみました。記事「TensorFlow理解のために柏木由紀さん顔特徴を調べてみた【前編】」の続編です。今回は、全体処理の中のTensorFlowの学習部分にフォーカスして解説します。解説と言いながら、わかってない部分も多くてすいません 判定部分にフォーカスしている後編に続きます。 学習処理概要 前編でも説明しましたがTensorFlowを使って学習しています。TensorFlowエキスパート向けチュートリアルDeep MNIST for Expertsとほぼ同じモデルです。その解説については、記事「【入門者向け解説】TensorFlowチュートリアルDeep MNIST」を参照ください。 画像処理の流れ 1. 画像サイズ変更 「学習処理概要」の図には載せていませんが、TensorFl
インストール手順 0. 前提 インストール前に前提です。筆者の環境(Windows10 64bit)には、Anaconda3 5.0.1がインストール済みです。Anacondaのインストール手順は別記事「TensorFlowをWindowsにインストール Python初心者でも簡単だった件」を参照ください。 1. Wheelパッケージダウンロード リンク先から"opencv_python‑3.4.1‑cp36‑cp36m‑win_amd64.whl"をクリックしてWheelパッケージをダウンロードします。 ※適宜、使用したいバージョンを選択ください 2. Anaconda仮想環境作成 WindowsメニューからAnaconda Navigatorを起動します。Apache Ambariに似ています。 仮想環境名として"openCV"を入力して、Python3.6を選びます。 3. open
入門者向けに「畳み込み」処理について解説 TensorFlowエキスパート向けチュートリアルDeep MNIST for Expertsを実行して、まずわかりにくいのが「畳み込み」処理でした。文系卒からすると一般用語でもないですし、少し時間がかかりましたが、分かれば簡単です。基本的には四則演算ができれば理解できます。 【入門者向け解説】TensorFlowチュートリアルDeep MNIST記事で、畳み込みニューラルネットワークの処理を解説していますので参考にしてください。 また、「【入門者向け解説】プーリング処理入門(TensorFlowで説明)」の記事でプーリングについても解説しています。 ※TensorBoardで出力した画像を参考に載せました(2017/7/27) 概説 概要 「【入門者向け解説】TensorFlowチュートリアルDeep MNIST」の記事で解説しましたが、「畳み込
R言語とは 統計解析向けのオープンソース言語です。とにかく、統計に関わるとあらゆる場所で「R」について聞きます。SPSSやSASはもちろん、Azure Machine Learningなどクラウド系の統計ソリューションでも大体、使える/連携できるようになっています。 今回はR言語環境準備としてRのインストール方法を紹介します。RStudioインストール(2020年 Windows)に続きます。 ※2020年5月に最新版でインストールし直して手順の再確認しました。一部スクリーンショットは旧バージョンインストール時のものですが、バージョンID以外変わらなかったのでそのままにしています。 参考 Wikipedia: R言語 R公式サイト 【R入門】R言語の基本的な使い方 環境:Windows7 32bit(LinuxでもMacでも使えます) Windows10 64bitでも同じ操作でインストー
前から使ってみたかったTensorBoardのProjectorを表示してみたので、記事にします。見た目かっこいいです少し古い資料ではProjectorという言葉ではなく、Embedded Visualizationと書かれていますが同じ意味です。 他TensorBoard関連記事として下記2つも参照ください。 【TensorBoard入門】TensorFlow処理を見える化して理解を深める 【TensorBoard入門:image編】TensorFlow画像処理を見える化して理解を深める 出力イメージ 画面上でこんな感じです。MNISTのデータを使っています。TensorBoardの起動方法は【TensorBoard入門】TensorFlow処理を見える化して理解を深めるをご覧くください。 環境 実行環境は以下のとおりです。 種類 バージョン
短評 想像の3倍くらい時間をかけてしまいましたが、色々なことが目からウロコで大いに面白かったです。TensorFlowエンジニアの見習い小僧レベルにはなれた気がします。とはいえ、奥が深くて本当に表面的な部分を学習しただけとも感じています。内部的な処理はわからないことだらけですし、応用どころか基本もままならない状態。あとどのくらい時間をかければ、プロと胸を張って言えるレベルになれるかは、正直見当がつかないです・・・一方でそんな状態でもオリジナルのテーマでDeep Learningが実装できるのは、本当にTensorFlowの凄さだと思います。あと、地味にAnacondaも便利で助けられました。 学習目的 現在および直近の仕事でDeep LearningやAIはおろか、機械学習すら使わないですが、「今後を踏まえて何かしなきゃ」という強い想いのもと学習しました。また、純粋に「面白そう」という気持
openCVを使ってフォルダにある複数の画像ファイルから顔検出をして、顔部分を切り出して画像保存するプログラムを作ったので、その紹介です。 以下はopenCVに関する他参考記事です。 OpenCV3.3とPython3.6をAnacondaでWindows10へインストール 【入門者向け解説】openCV顔検出の仕組と実践(detectMultiScale) openCVの顔検出でパラメータを指定して手っ取り早く検出精度を高める openCVで効率的に大量画像を顔検出するためのtips 環境サマリは下記のとおりです。 Pythonコード 記事「openCVの顔検出でパラメータを使って素早く検出精度を高める」で解説したコードを流用して、画像ファイル名、画像数、使用学習済モデル、detelcMultiScaleのパラメータを実行時指定できるようにしています。 どの元ファイルと出力ファイルを出力
概要と環境 openCVの顔検出方法について調べて試してみました。入門者向けに解説します。 以下はopenCV関連記事です。 OpenCV3.3とPython3.6をAnacondaでWindows10へインストール openCVの顔検出でパラメータを指定して手っ取り早く検出精度を高める openCVで複数画像ファイルから顔検出をして切り出し保存 openCVで効率的に大量画像を顔検出するためのtips 検証環境は下記のとおりです。 openCVの顔検出でできたこと 人物画像に対して顔検知して四角枠で囲みました。 複数人でも大丈夫。すごい! 変顔だって検知します!(後ろの人も検知できてます) 顔検知から鼻検知に切り替えることもできます。 oepnCVの顔検出の仕組み 論文や具体的なアルゴリズムを見て調べて確認していないので、以降の解説は誤りがあるかもしれません(指摘いただけたら嬉しいです)
TensorBoardでTensorFlowの理解を早める 文系卒でDeep LearningどころかPythonも初めてだと、TensorFlowを理解するのが遅くてなかなか苦しいです。少しでも理解を早めるためにもTensorBoardを学習しました。複雑なディープラーニングの理解促進はもちろん、デバッグや処理最適化・再設計などいろんなことに使えます。いろいろな見える化ができるのですが、当記事は入門者に向けたGraph出力方法に絞って解説します(もっと広く深くできればいいのですが、そこまで筆者の理解が追いついていません)。 公式ガイド「TensorBoard: Visualizing Learning」がわかりにくかったので、かなり簡素化しています。 TensorBoardで処理を可視化するのサイトが素晴らしく、かなり参考にさせて頂きました。 環境:python3.5 tensorflo
統計入門のつまづき 文系卒のエンジニアである筆者が統計と機械学習を学ぼうとしましたが、まずは数式で躓きました。このあたりの内容は「文系卒社会人が統計・機械学習を理解するための数学勉強方法」にも記載しています。 今まで、簿記やERP、Webなどいろいろなことを学んできましたが、ここまで内容が理解できずにもやもやしたのは初めてで、がっかりすると同時にワクワクする自分もいました。 2年ほど勉強をして、統計学にフォーカスしたおすすめ勉強方法を「文系卒社会人が統計入門する最短学習法」に書きました。 大雑把な流れ つまづきとその克服の大雑把な流れです。 1. 仕事でデータサイエンス系のデモシナリオを検討 正直、たいしたデモシナリオを作れなかったです。それっぽくは仕上げましたが、私の理解度が足りないなので、自信を持って語れないし、応用も利きません・・・ 業務分析にしろ、統計の業務への組込にしろ、今までや
TensorFlowの基本構文とコンセプト 公式ページのGetting Started With TensorFlowを試して、ポイントとなる点を解説していきます。この内容を理解してから「【入門者向け解説】TensorFlowチュートリアルMNIST(初心者向け)」のチュートリアルをすると理解が早いです(私はボケてすっ飛ばしていました)。 参考リンク TensorFlowをWindowsにインストール Python初心者でも簡単だった件 【入門者向け解説】TensorFlowチュートリアルMNIST(初心者向け) TensorFlowチュートリアルMNIST(初心者向け)をTensorBoardで見える化 TensorFlow APIメモ 【TensorBoard入門】TensorFlow処理を見える化して理解を深める 【TensorBoard入門:image編】TensorFlow画像処
TensorFlowの初心者向けチュートリアル TensorFlowの初心者向けチュートリアルMNIST For ML Beginnersを実行しました。筆者は文系卒でTensorFlowは初めてで、それどころかDeep Learningも初めて。さらには機械学習もほとんどやったことない状態です。数学知識は文系卒社会人が統計・機械学習を理解するための数学勉強方法の記事を参考にしてください。 入門者向け目線で解説しています。正確性を欠いている部分も多いですが、わかりやすさを優先して書いています。 参考リンク TensorFlowをWindowsにインストール Python初心者でも簡単だった件 【入門者向け解説】TensorFlow基本構文とコンセプト TensorFlow APIメモ 【TensorBoard入門】TensorFlow処理を見える化して理解を深める TensorFlowチュ
TensorFlow1.6をWindows10にインストールします。基本的には公式サイトを見ながらインストールしています。私は Pythonはほとんどやったことない人間ですが、そんな程度でもまるで問題なかったです。 当記事はAnacondaを使っていますが、Minicondaも使用ディスク容量が大幅に削減できておすすめです。Minicondaの場合は以下の2つの記事を参照ください。 WindowsにMinicondaインストール(2018年) WindowsでMinicondaを使ってTensorFlow環境構築(2018年) Windowsでの環境比較は、記事「Windows PCで機械学習環境を作る方法まとめ」に書きました。 UbuntuでのTensorFlow環境構築は記事「WSLのUbuntuにTensorFlowをインストール」を参照ください。 あと、Google Colabor
次のページ
このページを最初にブックマークしてみませんか?
『@FukuharaYoheiのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く