タグ付けされた質問 「neural-networks」

5
機械学習ゴルフ:乗算
このコミュニティに異なる種類のゴルフチャレンジを提案したいと思います。 (人工)ニューラルネットワークは、与えられた(通常は未知の)関数を近似するように設計およびトレーニングできる非常に一般的な機械学習モデルです。彼らは多くの場合、ニューラルネットワーク上のプライマーのために...私たちは、音声認識、画像分類の特定の種類、自律走行システムでは、さまざまなタスクのようにアルゴリズム的解決する方法がわからない、非常に複雑な問題を解決するために使用しているこの素晴らしいを考えますウィキペディアの記事。 これが一連の機械学習のゴルフチャレンジになりたいと願う最初のものであるため、できるだけシンプルなものにしたいと思います。 選択した言語とフレームワークで、与えられた)がと間(を含む)のすべての整数積を計算するニューラルネットワークを設計およびトレーニングします。(x1、x2)(x1,x2)(x_1, x_2)バツ1⋅ X2x1⋅x2x_1 \cdot x_2バツ1、x2x1,x2x_1, x_2− 10−10-10101010 パフォーマンス目標 資格を得るために、モデルはこれらのエントリの正しい結果からを超えて逸脱することはできません。0.50.50.5 ルール あなたのモデル 「従来の」ニューラルネットワークである必要があります(ノードの値は、前のレイヤーのノードの一部の重み付き線形結合と、それに続く活性化関数として計算されます)、 次の標準アクティベーション関数のみを使用できます。 線形(x )= xlinear(x)=x\textrm{linear}(x) = x、 softmax( x⃗ )私= eバツ私∑jeバツjsoftmax(x→)i=exi∑jexj\textrm{softmax}(\vec{x})_i = \frac{e^{x_i}}{\sum_j e^{x_j}}、 セルα 、β(x )= { β⋅ Xα ⋅ β(eバツ− 1 )、x > 0の場合 、 そうでなければseluα,β(x)={β⋅x, if x>0α⋅β(ex−1), otherwise\textrm{selu}_{\alpha, \beta}(x) = \begin{cases} \beta \cdot …

2
ニューラルネットワークは素数を認識できますか?
バックグラウンド 素数性の認識は、(人工)ニューラルネットワークにはあまり適していないと思われます。ただし、普遍近似定理では、ニューラルネットワークは任意の連続関数を近似できるため、特に、希望する有限サポート関数を表すことができるはずです。それで、最初の100万の数の中のすべての素数を認識してみましょう。 より正確には、これはプログラミングWebサイトであるため、2 ^ 20 = 1,048,576まで進みましょう。このしきい値を下回る素数の数は82,025または約8%です。 チャレンジ すべての20ビット整数を素数または素数として正しく分類できるニューラルネットワークはどれくらい小さいでしょうか? この課題のために、ニューラルネットワークのサイズは、それを表現するために必要な重みとバイアスの総数です。 詳細 目標は、単一の明示的なニューラルネットワークのサイズを最小化することです。 ネットワークへの入力は、整数の個々のビットを含む長さ20のベクトルになり、0と1で表されるか、-1と+1で表されます。これらの順序は、最上位ビットが先か、最下位ビットが先です。 ネットワークの出力は単一の数値である必要があります。これにより、カットオフ値を超えると入力が素数として認識され、同じカットオフ値を下回ると入力が素数でないと認識されます。たとえば、正は素数を意味し(負ではなく負)、あるいは0.5より大きい場合は素数を意味します(そして0.5未満は素数ではありません)。 ネットワークは、すべての2 ^ 20 = 1,048,576の入力で100%正確でなければなりません。上記のように、この範囲には82,025個の素数があることに注意してください。(常に「素数ではない」を出力すると、92%正確になります。) 標準的なニューラルネットワークの用語では、これはおそらくオーバーフィッティングと呼ばれます。言い換えれば、あなたの目標は素数を完全に過剰適合させることです。他の言葉としては、「トレーニングセット」と「テストセット」が同じであることです。 この課題では、「トレーニング可能な」または「学習可能な」パラメータの数は考慮されていません。実際、ネットワークにはハードコーディングされた重みが含まれている可能性が高く、以下の例は完全にハードコーディングされています。代わりに、すべての重みとバイアスがパラメーターと見なされ、カウントされます。 ニューラルネットワークをトレーニングまたは生成するために必要なコードの長さはスコアに関係ありませんが、関連するコードを投稿することは確かにありがたいです。 ベースライン ベースラインとして、82,025個のすべての素数を1,804,551個の合計重みとバイアスで「記憶」することができます。 以下のこのコードには、実例、テストコード、既知のニューラルネットワークライブラリを使用したニューラルネットワークの動作定義、「ハードコード」(または少なくとも「トレーニングされていない」)ニューラルネットワーク、スコアの実際の測定。 import numpy as np bits = 20 from keras.models import Sequential from keras.layers import Dense from sympy import isprime # Hardcode some weights weights = …

1
ニューラルネットワークで並べ替える
これまでのニューラルネットゴルフの課題(これとそれ)は、私に新しい課題を提起するきっかけになりました。 チャレンジ 任意の4次元入力ベクトルが与えられると、ように最小のフィードフォワードニューラルネットワークを探す(a 、b 、c 、d)(a、b、c、d)(a,b,c,d)の整数のエントリと[ - 10 、10 ][−10、10][-10,10]、ネットワーク出力sort(a,b,c,d)sort(a,b,c,d)\textrm{sort}(a,b,c,d)と厳密に0.50.50.5より小さい座標に関する誤差。 許容性 この課題に対して、フィードフォワードニューラルネットワークはレイヤーの構成として定義されます。層は、関数であるL:Rn→RmL:Rn→RmL\colon\mathbf{R}^n\to\mathbf{R}^m行列で指定されたA∈Rm×nA∈Rm×nA\in\mathbf{R}^{m\times n}の重みベクトルb∈Rmb∈Rmb\in\mathbf{R}^mのバイアス、及び活性化関数 f:R→Rf:R→Rf\colon\mathbf{R}\to\mathbf{R} coordinate-適用されます賢い: L(x):=f(Ax+b),x∈Rn.L(x):=f(Ax+b),x∈Rn. L(x) := f(Ax+b), \qquad x\in\mathbf{R}^n. アクティベーション関数は任意のタスクに合わせて調整できるため、この課題を面白くするためにアクティベーション関数のクラスを制限する必要があります。次のアクティベーション機能が許可されています。 身元。 f(t)=tf(t)=tf(t)=t ReLU。 f(t)=max(t,0)f(t)=max⁡(t,0)f(t)=\operatorname{max}(t,0) ソフトプラス。 f(t)=ln(et+1)f(t)=ln⁡(et+1)f(t)=\ln(e^t+1) 双曲線正接。 f(t )= tanh(t )f(t)=タン⁡(t)f(t)=\tanh(t) シグモイド。 f(t )= etet+ 1f(t)=etet+1f(t)=\frac{e^t}{e^t+1} 全体として、許容ニューラルネットは、フォームとるLk∘ Lk − 1○は⋯ ○はL2∘ L1Lk∘Lk−1∘⋯∘L2∘L1L_k\circ L_{k-1}\circ\cdots \circ L_2\circ L_1、いくつかのためにkkk各層、L私L私L_i重みで指定されたA私A私A_i、バイアスb私b私b_i、及び活性化関数f私f私f_i上記のリストから。たとえば、次のニューラルネットは許容されます(このチャレンジのパフォーマンス目標を満たしていませんが、有用なガジェットである可能性があります)。 [ 分(a …

2
ニューラルネットワークで多項式の最大根を求める
チャレンジ 整数エントリを持つ3次元入力ベクトルが与えられると、ネットワークは、多項式、誤差はより厳密に小さい。(a,b,c)(a,b,c)(a,b,c)[−10,10][−10,10][-10,10]x3+ax2+bx+cx3+ax2+bx+cx^3+ax^2+bx+c0.10.10.1 許容性 私の以前のニューラルネットゴルフチャレンジの許容性の概念は少し制限的であるように思われたので、このチャレンジでは、フィードフォワードニューラルネットワークのより寛大な定義を使用しています。 ニューロンは、機能であるのベクトルで指定されるの重み、バイアスとアクティベーション関数は次のようになります。ν:Rn→Rν:Rn→R\nu\colon\mathbf{R}^n\to\mathbf{R}w∈Rnw∈Rんw\in\mathbf{R}^{n} b∈Rb∈Rb\in\mathbf{R} f:R→Rf:R→Rf\colon\mathbf{R}\to\mathbf{R} ν(x):=f(w⊤x+b),x∈Rn.ν(バツ):=f(w⊤バツ+b)、バツ∈Rん。 \nu(x) := f(w^\top x+b), \qquad x\in\mathbf{R}^n. 有するフィードフォワードニューラルネットワークの入力ノード の関数であるそれが配列から構築することができるのニューロン。各はとスカラーを出力します。出力ノードの指定されたセットが与えられた場合、ニューラルネットワークの出力はベクトルです。{1,…,n}{1、…、ん}\{1,\ldots,n\}(x1,…,xn)∈Rn(バツ1、…、バツん)∈Rん(x_1,\ldots,x_n)\in\mathbf{R}^n(νk)Nk=n+1(νk)k=ん+1N(\nu_k)_{k=n+1}^Nνk:Rk−1→Rνk:Rk−1→R\nu_k\colon\mathbf{R}^{k-1}\to\mathbf{R}(x1,…,xk−1)(x1,…,xk−1)(x_1,\ldots,x_{k-1})xkxkx_kS⊆{1,…,N}S⊆{1,…,N}S\subseteq\{1,\ldots,N\}(xk)k∈S(xk)k∈S(x_k)_{k\in S} アクティブ化関数は任意のタスクに合わせて調整できるため、この課題を面白く保つために、アクティブ化関数のクラスを制限する必要があります。以下のアクティベーション機能が許可されています。 身元。 f(t)=tf(t)=tf(t)=t ReLU。 f(t)=max(t,0)f(t)=max⁡(t,0)f(t)=\operatorname{max}(t,0) SoftPlus。 f(t )= ln(et+1)f(t)=ln⁡(et+1)f(t)=\ln(e^t+1) シグモイド。 f(t)=etet+1f(t)=etet+1f(t)=\frac{e^t}{e^t+1} 正弦波。 f(t)=sintf(t)=sin⁡tf(t)=\sin t 全体として、許容ニューラルネットは、入力ノード、ニューロンのシーケンス、および出力ノードによって指定されますが、各ニューロンは、重みのベクトル、バイアス、および上記のリストからのアクティブ化関数によって指定されます。たとえば、次のニューラルネットは許容されますが、この課題のパフォーマンス目標を満たしていません。 入力ノード: {1,2}{1,2}\{1,2\} ニューロン: forνk(x1,…,xk−1):=xk−2+xk−1νk(x1,…,xk−1):=xk−2+xk−1\nu_k(x_1,\ldots,x_{k-1}):=x_{k-2}+x_{k-1}k∈{3,…,10}k∈{3,…,10}k\in\{3,\ldots,10\} 出力ノード: {5,9,10}{5,9,10}\{5,9,10\} このネットワークは8つのニューロンで構成されており、それぞれにバイアスとアイデンティティのアクティブ化がありません。つまり、このネットワークは、とによって生成された一般化フィボナッチ数列を計算し、この列から5番目、9番目、10番目の数をこの順序で出力します。x1x1x_1x2x2x_2 得点 実数所与小数拡張を終了すると、聞かせて最小の非負整数であるのための、およびlet最小の非負整数であるのためのこのは整数です。その後、我々は言うある精度の。xxxp(x)p(x)p(x)ppp10−p⋅|x|&lt;110−p⋅|x|&lt;110^{-p}\cdot |x|<1q(x)q(x)q(x)qqq10q⋅x10q⋅x10^q \cdot xp(x)+q(x)p(x)+q(x)p(x)+q(x)xxx たとえば、の精度はが、の精度はです。x=1.001x=1.001x=1.001444x=0x=0x=0000 スコアは、ニューラルネットワークの重みとバイアスの精度の合計です。 (たとえば、上記の例のスコアは16です。) 検証 根は3次式で表現できますが、最大の根はおそらく数値的手段で最も簡単にアクセスできます。XNORの提案、@の後、私は整数のすべての選択のための最大のルートを計算し、との結果がここで見つけることができます。このテキストファイルの各行の形式はです。たとえば、最初の行は、の最大ルートが約ます。a,b,c∈[−10,10]a,b,c∈[−10,10]a,b,c\in[-10,10]xは3 - …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.