サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
参議院選挙2025
tkng.org
Optimizerはロマンである。Optimizerを変えると学習が速くなったりlossがこれまでより下がったりする。すばらしい! 本記事では今年出てきた新しいOptimizerやその関連研究を眺めてみたい。 Cautious Optimizers: Improving Training with One Line of Codegradientと更新方向の符号が一致している場合にのみ、そのパラメーターを更新する。なんのこっちゃと思われるかもしれないが、momentumの概念が入ると、gradientと実際の更新方向の食い違いは容易に起こりえる。更新するパラメーターの数に応じて、更新量をスケールする。更新するパラメーターの数が少ない場合は、更新するパラメーターに対してはアグレッシブに更新を行う。AdamWとLionに適用しているが、Momentum SGDにも適用できそう。LLaMA-60
(スターウォーズのテーマをかけ、ゆっくりとスクロールしながらお読みください) この記事は LeapMind Advent Calendar 2019 25日目の記事です。 もはや年1回の更新すら怪しくなってきたこのブログですが、今年もなんとか更新できました。来年はどうなるかな。 概要LeapMindは極小量子化という技術にかなり注力していますが、どういうことをやっているのか、なぜそのようなことをやっているのか、CTO個人としての視点から解説します。 はじめにLeapMindという会社の究極的な目標を端的に表現すると、機械を今よりもインテリジェントにすること、特に、データセンターにあるような計算機ではなく、身近なエッジデバイスをインテリジェントにすることです。正確なニュアンスについて知りたい方は、現在絶賛社員募集中なので、ぜひ会社見学にいらっしゃってください。 さて、このような崇高なミッショ
近年の大規模ニューラルネットワークを用いたシステムの運用には、GPUがほぼ必須であると考えられている。 しかし、プロダクションシステムがAWSなどのクラウド上に置かれている場合、GPUを使ったニューラルネットワークは使いづらい。AWS EC2のGPUインスタンスは高額だし、AzureやGCEは今のところGPUインスタンスを提供していない。という訳で、学習時にはGPUを使っても構わないのだが、テスト時にはCPUでもそこそこ高速に動いてくれるネットワークが構築できると嬉しい。 最近のニューラルネットワークの計算が重たいのは、2D Convolutionの計算量がとても大きいからである。高速に動かすためには、とにかく計算量を減らさないといけない。 考えられる方向は3つ存在する。1つ目がConvolution自体の高速化、2つ目が計算の低精度化、3つ目がスパース化である。 Convolution自
IM飲み会2017で、アメリカの給与相場についての話をした(もはやIMと全く関係ないが、IM開発者の人生に関係があるということで)。会社に雇われてると、こういうトピックを書くには差し障りがあったり、自慢っぽくなったりしてしまうので、タイミングよく無職である今の間に、こちらにも書いておきたい。 内容を一言に要約すると、「シリコンバレーでは、ある程度の経験を積んだソフトウェアエンジニアの年収は3000万円に容易に達しうる」ということになる。 最近、アメリカでは人工知能系のエンジニアの給料は3000万とか4000万とかが当たり前らしい、というような噂をTwitterなどで見かけるが、こういった情報は、間違ってはいないが、完全に正解であるとも言い切れない。このあたりは、日本とアメリカの報酬システムの違いを知らないと、しっかりと理解できない。 USでのエンジニアの報酬システムの概要アメリカのテック系
2年と2ヶ月と少しの間勤めたスマートニュース株式会社を、少し前に退職しました。 在職中は、サムネイル画像生成サーバーの導入をしたり、Entity Linkingを実装したり、サムネイル画像の切り出しにDeep Learningを導入したりしていました。在職中には多くの方々にお世話になりました。あらためて感謝いたします。 次の職は決まってません。しばらくはお金にならなさそうなプログラムを書いて自由を満喫したいと思っていますが、無職も意外と忙しくて、なかなか時間が取れません。 とはいえ、基本的には無職は人に会う機会が少なくてでさみしいので、みなさん、遊んでやって下さい。平日でもぜんぜん大丈夫だよ! あと、就職活動もぼちぼち始めてますので、いい仕事知ってる人、こっそり教えてください。連絡先は 名字.名前@gmail.com です。 (追記)思ったよりもだいぶ多くのご連絡をいただきまして、ありがと
XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks が出てきた。Abstractを読むと、「This results in 58x faster convolutional operations」とか「XNOR-Nets offer the possibility of running state-of-the-art networks on CPUs (rather than GPUs) in real-time」とか、ワクワクするようなことが書いてある。というわけで中身もザッと読んでみた。 XNOR-NetとBinaryNet、BDNNの違いXNOR-Netは、既存のBinaryNetやBDNNとほぼ同じであるが、新しいテクニックとして、スケーリング係数が導入される。 スケーリング係数
SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <1MB model size を読んだメモ。 最近の畳み込みニューラルネットは巨大化する傾向があり、メモリ消費量が大きい。メモリ消費量を減らしたい、というのがこの論文の目的である。SqueezeNetでは、Convolutionレイヤーを、SqueezeレイヤーとExpandレイヤーの2つの組み合わせで置き換える。Squeezeレイヤーは1x1のConvolutionであり、出力チャネル数が少ない(16〜64程度)のが特徴である。Expandレイヤーは1x1 Convolutionと3x3 Convolutionを横に並べたものである。GoogLeNetのInceptionモジュールに近い。 Squeezeレイヤーによって3x3 Convolutionに与える
cuDNNはNVIDIAが公開しているDeep Learning用のライブラリである。このライブラリを使うとCaffeやChainerなどのDeep Learning用のソフトウェアの速度が向上する。 この速度向上に寄与している最も大きな部分がConvolutionの高速化である。 個人的には、CPUでどこまで高速にConvolutionが実現できるのかに興味がある。本記事は、その準備段階として、どういう高速化戦略がありえるのかを調べたものである。 ConvolutionとはConvolutionは、日本語では畳み込みと呼ばれる操作である。畳み込み操作自体は何次元のデータ構造に対しても定義できるが、以下では、画像処理でよく使われる、二次元のConvolutionのみを考える。 何も考えずに普通にConvolutionを実装すると、以下の擬似コードのようになるだろう。ただし、簡単のため、境界
BinaryNet が最近話題になっている。ニューラルネットワークの二値化については前から興味があったので読んでみた。 ニューラルネットワークの二値化についてはこれまでも色々と研究があるようである。大きな方向性としては、まずはじめに実数値で重みを学習してそれを二値化するというやり方と、最初から二値の重みを学習するやり方がある。BinaryNetはそのどちらとも明確に分類しづらい、ちょっと変わった手法である。 BinaryConnectBinaryNetの前にBinaryConnectに触れておくことにする。どちらもBengioグループの研究である。BinaryConnectは大雑把に説明すると、以下の様な手法である。 weight matrix自体は実数で値を持っていて、forward/backwardの計算時に二値化する。パラメーター更新時は実数で持っている側のweight matrix
先日のNL研で@issei_satoさんのBayesian Optimizationの講演を聞いてきたので、自分なりにメモをまとめておく。 Bayesian Optimizationは、関数をなんらかの確率分布で近似し、その確率分布を使って最適化を行う手法である。1回の評価にかかるコストがとても大きな問題に対してできるだけ少ない回数でいい解を得るための手法である。例えば、最近の流行である深層学習も含め、機械学習にはハイパーパラメーターがつきものだが、ハイパーパラメーターを1つ評価するためには学習をまるまる1回実行しなければならないので、当たり前だが評価コストがとても高い。このような場合にBayesian Optimizationを使う。 解くべき具体的な問題設定としては、0個以上の(最適化したい)目的関数の評価結果が手元にある場合に、次にどこを調べればいいかを考える、というものになる。Ba
いつ頃からか、Macbook Proでの日本語入力がもっさりするようになってしまっていた。Mavericksの頃にどうだったのかよく覚えていないのだが、テキストエディットやらTerminalやら、とにかくなにで入力をしていても、とてつもなく動作が重い。 普通に日本語を入力していてもついてこれていないし、適当にあsヵjlsfkじゃslとか勢いよく入力してみると、もう全然ついてこれず、あとからゆっくりとプリエディットが更新される。Windows 95でももうちょっと快適だったんじゃないかってぐらいに遅い。 【解決】Yosemiteで日本語の入力が遅くなる件について を参考にしてスペルチェッカを減らしてみたりもしたのだが、自分の場合、問題は解決されなかった。あまりにもストレスフルだったので「Yosemite 日本語入力 遅い」などで検索して見ると、次のページが見つかった。 https://dis
Let’s Encryptのプレスリリースが出てきた時、なにがなんだかよくわからなかった。年末年始にちょっと調べてみたので、簡単にまとめておく。 近年、インターネットにおいて、通信をエンドツーエンドでできるだけ暗号化しようという動きが始まっている。これは、セキュリティやプライバシーのことを考えてのことであり、望ましいものである。 しかし、ウェブの世界では、SSL(TLSと書くべきなのかもしれないが、SSLって書いちゃったので以下ではSSLで統一しておく)の普及はまだまだ遅れている。これには2つの問題点があって、ひとつはSSLの証明書が有料であること、もうひとつはSSLの証明書の設定が煩雑であることである。Let’s Encryptはこれらの問題点を解決し、ウェブの世界でSSLをより普及させるためのプロジェクトである。このプロジェクトのため、Mozilla、Cisco、Akamai、Iden
Part1 日本語入力に関する基礎知識 今日では、日本語をコンピュータで入力する際には、一般にかな漢字変換と呼ばれる方式が用いられている。Part1ではかな漢字変換方式についての解説と、かな漢字変換を実現するための仕組みについての解説を行う。 日本語入力システムの構造の概要 かな漢字変換方式について 漢字かな交じりの日本語の文章をキーボードから直接入力する事は難しい。(T-Code方式やTUT-Code方式のように、直接入力する方式も存在するが、これらについてはここでは触れない。)そこで、かなを入力してから漢字へと変換する事で漢字交じり文を入力うる、という2段階の手順を踏むのが一般的であり、この方式はかな漢字変換方式と呼ばれる。 キーボードからかなを入力する キーボードからかなを入力するための方法には、メジャーなものが2つある。ひとつがローマ字入力方式で、もうひとつがかな入力方式である。ロ
仮想化の分野はどんどんと新しいものが出てくる。全部を実際に試すことは出来なくても、筋が良さそうなものについては、どういうものなのかある程度把握しておきたい。最近はちょっと忙しくてあまり情報収集ができてなかったので、追いつこうと思ってちょっと調べてみた。 ハイパーバイザ型仮想化とコンテナ型仮想化 仮想マシンの歴史をたどると、メインフレームの方では随分と昔から使われている技術である、と出てくる。一方で、x86の世界ではそれほど歴史は長くなく、1999年にリリースされたVMwareがおそらく実用的な初の仮想マシン技術だろう。 VMWareはハイパーバイザ型仮想化と呼ばれる技術で、上に乗るOS(ゲストと呼ばれる)に対して仮想的なハードウェアを提供する。ハイパーバイザ型も、どのレイヤで仮想的なハードウェアを提供するかで更に細分化されるらしいが、よく知らないので、ここではそこまでは踏み入らない。ハイパ
社会人になると、太る。というか、大学生の頃から太り続け、高校1年の頃と比べると、身長は1cmも変わっていないのに、体重は17kgぐらい増えてしまった。これはまずいということでダイエットを始めたのが3年ぐらい前である。 うまくいったりリバウンドしていたのだが、少しずつではあるが、ストレスをためずに体重を減らすためのノウハウは確実にたまってきた。ここしばらくは割とうまく行っていて、一年前ぐらいと比べると、体重を8kgほど落とした。体脂肪率も5%ぐらいは落とした。 8kgはあんまり劇的な数字ではないけれど、それなりに重みのある数字である。この中途半端なダイエットをどのようにして実行してきたか、どうすればより効率よく実行できるかをまとめてみたい。 最初に一言でまとめてしまうと「ジムに行く」というだけなのだが、ジムに行き続けるためにはいくつかノウハウがある。苦闘とともに学んできた歴史……については誰
Googleはアダルトであると判定された検索文字列に対し、サジェストを表示しないらしい。その事実はなんとなく知っていたのだが、先日「セクシーコマンドー外伝 すごいよマサルさん」に対してサジェストが一切行われない事に気づき、どういう挙動をしているのかと興味を持った。 結論としては、おそらく辞書ベースでアダルト語と判定されたものを含む検索文字列に対してサジェストを表示しない、ということをしているようだ。結論に辿り着いた経緯を以下に示す。 「セクシーコマンドー外伝 すごいよマサルさん」は、読んだのがだいぶ昔なので記憶はやや曖昧だが、特にアダルトな内容の含まれない、週刊少年ジャンプ連載のマンガであったと記憶している。つまり、これは誤判定だと私は考える。 一方「究極!!変態仮面」は、ややアダルトな内容の含まれるマンガである。こちらも週刊少年ジャンプに連載されていた。変態仮面はサジェストが出てこなくて
データサイエンティストという言葉に違和感がある。 今働いている会社的には、データサイエンティストという言葉は、微妙な言葉である。乗っかるべきなのかどうなのか迷うというか、いい言葉になるのかどうか、見通しがつかないというか。 そういった微妙な関係とは別に、データサイエンティストという言葉には、違和感がある。個人的には、この言葉には尻尾を振りたくない。 私が理解するところでは、科学というのは、この世の仕組みを明らかにしていく試みであって、その成果は論文などの形で世間に広く共有されるべきものである。 一方、データサイエンティストと呼ばれる人たちは、そもそも、この世の仕組みを明らかにすることを求められているわけではない。求められる人材像の例として「データ解析とビジネスの両方がわかること」なんてのが挙げられる時点で、これはサイエンティストじゃないだろう、と思ってしまうのだ。 データサイエンスなんて言
自分が再訪したいと思っている、もしくは再訪したことのある店だけを挙げてみた。 チャントーヤ (御茶ノ水) ココナッツカレー専門店だそうだ。味の系統はタイカレーだと思う。というか、ホームページを見たら「タイ風カレー」って書いてあった。ココナッツミルクはこれまでずっと苦手だったのだが、2年ほど前にタイで食べたタイカレーがおいしくて、苦手意識が払拭された。ココナッツミルクを使ったカレーが苦手な人も、一度食べてみてもらいたい。 グルガオン (銀座) オーソドックス(?)な北インドカレーを出す店。ダバ インディア(こちらは南インド料理の専門店である)の系列店。ダバ インディアと同じく、予約の時間厳守だったりと、少し厳しいところはあるが、店員さんは感じがよいし、料理はとてもおいしい。夜のコースは3000円弱のお値段だが、3000円であの内容であれば満足感がある。(サラダ、チーズクルチャ、カレー、デザー
Large Batch TrainingとCritical Batch Sizeについて2024/12/16 Large Batch TrainingとCritical Batch Sizeについて最近のOptimizerの研究について2024/12/12 最近のOptimizerの研究について退職しました(2024年度版)2024/12/12 退職しました(2024年度版)さようならVPS、こんにちはFirebase Hosting2021/04/05 さようならVPS、こんにちはFirebase Hosting深層学習の極小量子化という新たなる希望2019/12/25 深層学習の極小量子化という新たなる希望シリコンバレーのエンジニア給与相場が想像の倍ぐらい高かった2018/01/12 シリコンバレーのエンジニア給与相場が想像の倍ぐらい高かった退職しました2017/11/27 退職しまし
Stochastic Average Gradient (SAG)はNIPS 2012で提案された新しい最適化手法である。目的関数がstrongly convexである場合、という条件付きではあるが、線形収束が保証されている。要するに、速い。 A Stochastic Gradient Method with an Exponential Convergence Rate for Finite Training Sets 論文の解説についてはOiwa神の記事を参照すると良いと思う。以下では、SAGの考え方について、一般的なSGDとの差異を中心に説明したい。 SGDの復習 SAGを説明する前に、SGD(Stochastic Gradient Descent、確率的勾配降下法)とはどんな手法だったかを確認しておこう。 SGDはランダムに1つのデータを取ってきてgradientを計算し、そのgr
データが来ない。データがそもそも存在しないことが仕事が始まってから判明する。データが一部しか来ない。データが来たと思ったら壊れててプログラムで読めない。CSVという言葉に憎悪を抱く。かっこいいアルゴリズムを動かしてる時間よりも正規表現とかでクリーニングかけてる時間の方が長い。解析したけど解釈可能な結果が出てこない。教師なし学習でカッコよく片付けるはずがどうにもならなくて、結局教師データをつくったりWikipediaから追加で知識情報を引っ張ってくるハメになる。徹夜して作った実験結果がお客様に全くウケない。適当に数時間で作ったオマケがお客様にウケる。データ解析に限らず、用語を変えたら大概の仕事に当てはまりそうな気もする。
このドキュメントは、UNIX USER 2004 5月号に掲載された特集「最適な日本語 入力環境を発掘せよ」を、編集部の許可を得てHTML化したものです。校正前の 原稿を元にしており、かつ書き直したところがあるので、実際に掲載されたも のとは異なる箇所がある事をご了承下さい。既に記述が古くなってるところが あったりするのでアップデートしたいんですが、気力と時間が…。 いくつか訂正情報も出ていますので、サポートページもご覧下さい。 Part1: 日本語入力システムの構造の概要 概要です。日本語入力システムの基礎知識についての解説。日本語入力環境の歴史に関するコラムなどもここに。 Part2: 変換エンジンの紹介 各種変換エンジンの紹介です。 Part3: コンソールで使うインプットメソッド コンソールで実際に日本語入力を行うための方法です。 Part4: X Window Systemで使用
This is the profile page of TOKUNAGA Hiroyuki. For more details, please check my LinkedIn profile. Or you can read my blog articles (in Japanese).
このページを最初にブックマークしてみませんか?
『TOKUNAGA Hiroyuki』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く