Java 開発者のための機械学習の事例

Java 開発者のための機械学習の事例

翻訳者 |陳俊

レビュー | Chonglou

昨年以来、 ChatGPTBardなどの大規模言語モデルにより、機械学習は驚異的な地位にまで高まりました。開発者は、これらを使用して、画像生成から支援プログラミングにおける病気の検出まで、さまざまな分野でのユースケースを探索しています。

世界中の大手テクノロジー企業が機械学習への投資を増やしているため、Java 開発者は機械学習モデルのトレーニング方法と使用方法を理解する必要があります。以下では、機械学習の仕組みの基本、機械学習アルゴリズムの実装とトレーニング方法に関する簡単なガイド、インテリジェント アプリケーションを開発するための最も一般的な教師あり機械学習の方法について説明します。

機械学習と人工知能

一般的に、機械学習は人間の知能を模倣しようとするAIの分野から進化し、人間の関与なしにアプリケーションがプロセスの改善、コードの更新、オンデマンドでの機能性の拡張を実行できるようにします。

現在、教師あり学習と教師なし学習の 2 つが、最も人気のある機械学習手法です。どちらのアプローチでも、相関関係を調べて学習させるために、大量のデータ レコードを機械に入力する必要があります。収集されたこれらのデータ レコードは通常、特徴ベクトルと呼ばれます。たとえば、住宅タイプのデータの場合、特徴ベクトルには、住宅の総面積、部屋数、住宅の築年数などの特徴が含まれる場合があります。

教師あり学習

教師あり学習では、アルゴリズムをトレーニングするために、特徴ベクトルと関連ラベルのセットをマシンに入力する必要があります。ラベルは通常、人間の注釈者によって提供され、特定の質問に対する正しい回答を表します。学習アルゴリズムは、特徴ベクトルとその正しいラベルを分析して、それらの内部構造と関係を見つけます。これに基づいて、機械は質問に正しく答える方法を学習できます。

たとえば、スマート不動産アプリケーションの特徴ベクトルをトレーニングするために、人間の注釈者は、家の大きさ、部屋数、築年数などの要素に基づいて、各家の正しい住宅価格にラベルを付けます。データを分析することで、不動産アプリケーションは「この家はいくらで売れるか?」という質問に答えられるようにトレーニングされます。

トレーニングが完了すると、アプリケーションは、目に見えないラベルのない特徴ベクトルに遭遇した場合でも、新しいクエリに正しく回答できるようになります。

教師なし学習

教師なし学習では、人間による注釈や質問なしに答えを予測するようにアルゴリズムがプログラムされます。ラベルや結果を事前に決定するのではなく、教師なし学習では、膨大なデータセットと処理能力を活用して、これまで知られていなかった相関関係を発見します。たとえば、消費者向け製品のマーケティングでは、教師なし学習を使用して隠れた関係や消費者のグループを特定し、最終的に新しいマーケティング戦略や改善されたマーケティング戦略を形成することができます。

教師あり機械学習プロジェクト

すべての機械学習はデータに基づいているため、アルゴリズムは基本的に、現実世界のさまざまなデータインスタンスからの入力に基づいて一連の数学モデルを構築し、最終的には新しいデータを使用して未知の結果を予測することを学習する必要があります。

この記事では、現在最も一般的な機械学習手法である教師あり学習に焦点を当てます。前述の不動産のユースケースを続けて、データに意味のあるラベルを付けてみましょう。以下の1では、住宅レコードの各行に「価格」というラベルが含まれています。行を住宅価格ラベルに関連付けることで、アルゴリズムは最終的にデータセットに含まれていない住宅の市場価格を予測できるようになります (住宅のサイズは平方​​メートル単位ですが、住宅価格はユーロ単位であることに注意してください)。

表1. 住宅記録

特徴

特徴

特徴

ラベル

家の大きさ


部屋数

住宅年齢

推定費用

90平方メートル/295フィート

2

23年

249,000ユーロ

101平方メートル/331フィート

3

なし

338,000ユーロ

1330平方メートル/4363フィート

11

12年

6,500,000ユーロ

初期段階では、データ レコードに手動で注釈を付ける必要があるかもしれませんが、最終的には、このプロセスを自動化するようにアプリケーションをトレーニングすることになります。つまり、ラベル付けされたデータセットはトレーニングとテストの目的でのみ使用されます。このフェーズの後、機械学習モデルはラベルのないデータのインスタンスで動作できるようになります。たとえば、ラベル付けされていない新しい住宅記録を予測アルゴリズムに入力すると、以前のトレーニング データに基づいて住宅価格が自動的に予測されます。

機械学習モデルのトレーニング

教師あり機械学習の課題は、特定の問題に対して適切な予測関数を見つけることです。数学的に言えば、私たちの課題は、入力変数xを受け取り、予測値を返すターゲット予測関数を見つけることです。

図1. ターゲット予測機能の例

ほとんどの場合、 x は複数のデータ ポイントを表します。この場合、それは家の寸法と部屋数の値によって定義される単一の家の 2 次元データ ポイントです。これらの値の配列は固有ベクトルと呼ばれます。一軒家の価格を予測するには、家の寸法と部屋数を含む特徴ベクトル{ 101.0, 3.0 }を使用してターゲット予測関数を呼び出すことができます。

リスト1. 特徴ベクトルを使用してターゲット予測関数を呼び出す

// 目标预测函数h(学习过程的输出) Function<Double[], Double> h = ...; // 设置房屋尺寸=101 和房间数=3 的特征向量Double[] x = new Double[] { 101.0, 3.0 }; // 并预测房价(标签) double y = h.apply(x);

リスト1では、配列変数xvaluesは住宅の特徴ベクトルを表しています。ターゲット予測関数によって返されるy値は、予測される住宅価格です。

機械学習における課題は、未知の、目に見えないデータインスタンスに対して可能な限り正確なターゲット予測関数を定義することです。機械学習では、ターゲット予測関数 ( ) はモデルと呼ばれることもあります。モデルは学習プロセスの結果であり、モデル トレーニングとも呼ばれます。

図2. 機械学習モデル

学習アルゴリズムはラベル付けされたトレーニング例に基づいており、トレーニング データ内のさまざまな構造やパターンを探します。このプロセス中、学習アルゴリズムは徐々に値を修正して損失を減らし、データから一般化できるモデルを生成します。

機械学習のプロセスは通常は探索的であるため、ほとんどの場合、異なる学習アルゴリズムと構成が複数回実行されます。モデルが決定されると、データはモデルを通じて複数回実行されます。これらの反復はエポックとも呼ばれます

最後に、アルゴリズムはパフォーマンス メトリックに基づいてすべてのモデルを評価し、ラベルのないデータ インスタンスの予測を計算するための最適なモデルを選択します。

線形回帰

まず、使用する学習アルゴリズムを選択する必要があります。線形回帰は、最も単純で最も人気のある教師あり学習アルゴリズムの 1 つです。このアルゴリズムでは、入力特徴と出力ラベルの間に線形関係があると想定します。図3の式では、一般線形回帰関数は、特徴ベクトルの各要素を合計し、それにシータパラメータ(θ)を乗算して予測値を返しますこのトレーニングプロセス中、θ パラメータは、トレーニング データに基づいて回帰関数を調整するために使用されます。

図3. 一般化線形回帰関数

線形回帰は単純な学習関数ですが、フィードフォワードニューラルネットワーク使用される勾配降下法などのより高度な形式の優れた基盤となります線形回帰関数では、θ パラメータと機能パラメータは、サブスクリプション番号によって列挙されます。ここでの購読数はシータを表す ベクトル内のパラメータ(θ)と特徴パラメータ(x)の位置。特徴x0は定数オフセット項であることに注意してください。計算を簡単にするために、その値は1に設定されています。したがって、ドメイン固有の機能(家の寸法など)のインデックス作成はx1から開始されます x1 が家の特徴ベクトルの最初の値 (家の寸法) に設定されている場合x2 は次の値 (部屋の数) に設定されます。

線形回帰を視覚化する場合、データ ポイントを可能な限り近づけようとする座標系上の直線を想像できることに注意してください。以下のリスト2 は、線形回帰関数のJava実装を示しています。数学的にはhθ(x)と表されます。簡単にするために、この計算ではdoubleデータ型を使用します。 apply()メソッドでは、関数の外部で配列の最初の要素が1.0に設定されています

リスト 2. Java での線形回帰

public class LinearRegressionFunction implements Function<Double[], Double> { private final double[] thetaVector; LinearRegressionFunction(double[] thetaVector) { this.thetaVector = Arrays.copyOf(thetaVector, thetaVector.length); } public Double apply(Double[] featureVector) { // 出于计算原因,第一个元素必须是1.0 assert featureVector[0] == 1.0; // simple, sequential implementation double prediction = 0; for (int j = 0; j < thetaVector.length; j++) {prediction += thetaVector[j] * featureVector[j]; } return prediction; } public double[] getThetas() { return Arrays.copyOf(thetaVector, thetaVector.length); } }

LinearRegressionFunctionの新しいインスタンスを作成するにはthetaパラメータを設定する必要があります。シータパラメーターまたはベクトルは、一般的な回帰関数を基礎となるトレーニング データに適応させるために使用されます。このコードのthetaパラメータは、学習プロセス中にトレーニング例に基づいて調整されます。明らかに、トレーニング ターゲット予測関数の品質は、与えられたトレーニング データの品質とのみ比較できます。

次の例では、 LinearRegressionFunction をインスタンス化して、家の寸法に基づいて住宅価格を予測します。 x0 は定数1.0なければならないことを考慮すると、ターゲット予測関数は2 つのthetaパラメータを使用してインスタンス化されますそして、シータパラメータは学習プロセスの出力です。新しいインスタンスを作成した後、面積1,330平方メートルの家の予測価格は次のようになります。

 // 这里使用的Theta 向量是训练过程的输出double[] thetaVector = new double[] { 1.004579, 5.286822 }; LinearRegressionFunction targetFunction = new LinearRegressionFunction(thetaVector); // create the feature vector function with x0=1 (for computational reasons) and x1=house-size Double[] featureVector = new Double[] { 1.0, 1330.0 }; // 进行预测double predictedPrice = targetFunction.apply(featureVector);

対象予測関数の予測線は4青い線で示されていますこのラインは、すべての住宅サイズの値に対して目標予測を行うことによって計算されます。図には、トレーニングに使用される価格サイズのペアも含まれています。

図4 ターゲット予測関数の予測線

上図の座標の切片と傾きはθで与えられる。 ベクトル{ 1.004579, 5.286822 }が定義されます。予測グラフは非常に適切に思えますが、 Thetaベクトルがアプリケーションに確実に適していることをどうやって知るのでしょうか?最初の theta パラメータまたは 2 番目のthetaパラメータを変更すると、関数の適合性は向上しますか?最も適切なシータパラメータベクトルを決定するには、ターゲット予測関数のパフォーマンスを評価するユーティリティ関数が必要です。

ターゲット予測機能の評価

機械学習では、コスト関数 ( J(θ) ) (「損失関数」とも呼ばれる) は、特定のターゲット予測関数の平均誤差または「コスト」を計算するためによく使用されます。図5に関数の例を示します。

図5 コスト関数

コスト関数は、モデルがトレーニング データにどの程度適合するかを表します。ターゲット予測関数のトレーニングコストを決定するために、各住宅例(i)の二乗誤差を計算できますここでの誤差は、計算されたy値と家の例i実際のy値の間の距離です。たとえば、面積1330平方メートルの住宅の実際の価格6,500,000ユーロですが、トレーニングされたターゲット予測関数は住宅価格を7,032,478ユーロと予測し、その差 (または誤差) は532,478ユーロになります。このギャップは4で確認できます。グラフ内のギャップ (またはエラー) は、トレーニング価格サイズのペアごとに垂直の赤い破線として表示されます

トレーニングされたターゲット予測関数のコストを計算するには、例の各家の二乗誤差を合計し、平均を計算する必要があります。 J(θ)のコスト値が小さい場合にのみ、ターゲット予測関数の予測はより正確になります。

以下のコード リストでは、コスト関数の単純なJava実装が、ターゲット予測関数、トレーニング レコードのリスト、およびそれらに関連付けられたラベルを入力として受け取ります。予測はループで計算され、誤差は実際のラベル値を減算することによって計算されます。これから二乗誤差を集計し、平均誤差を計算します。コストも double 値として返されます。

 public static double cost(Function<Double[], Double> targetFunction, List<Double[]> dataset, List<Double> labels) { int m = dataset.size(); double sumSquaredErrors = 0; // 计算每个训练示例的平方误差(“差距”),并将其与总和相加for (int i = 0; i < m; i++) { // 获取当前示例的特征向量Double[] featureVector = dataset.get(i); // 根据真实值(标签)预测值并计算误差double predicted = targetFunction.apply(featureVector); double label = labels.get(i); double gap = targetFunction.ap ply(f eat ureVector); double label = labels.get(i);doublegap= targetFunction.apply(featureVector).get(i); double gap = predicted - label;sumSquaredErrors += Math.pow(gap, 2); } // 计算并返回误差的平均值(越小越好) return (1.0 / (2 * m)) * sumSquaredErrors; }

勾配降下法を用いたターゲット予測関数のトレーニング

コスト関数はターゲット予測関数とシータパラメータの品質を個別に評価するのに役立ちますが、最適なシータパラメータを計算する必要は依然としてあります。ここでは、勾配降下アルゴリズムを使用して計算を実行できます。

勾配降下法を使用してシータパラメータを計算する

勾配降下法はコスト関数を最小化できます。つまり、コストが最も低いトレーニングデータ( J(θ) を見つける。 シータの組み合わせ 勾配降下法では、偏微分を使用して各変数を徐々に調整します。 これはバックプロパゲーションの典型的な形式であり、他のすべての形式はこれに基づいています。

6は、より適合性の高い新しいThetaを計算するために使用できる簡略化されたアルゴリズムを示しています

図6. 勾配降下法はコスト関数を最小化する

各反復において、 シータベクトル各パラメータθ、新しい、より良い値に計算されます。同時に、学習率 α は各反復の計算ステップ サイズを制御し続けます。この計算は、適切かつ十分なθ値の組み合わせが得られるまで繰り返されます。たとえば、7の線形回帰関数には 3 つのthetaパラメーターがあります。

図7. 3つのシータパラメータを持つ線形回帰関数

各反復( 「エポック」 )において、アルゴリズムは各シータパラメータ(θ 0 、θ 1 、θ 2 )の新しい値を並列に計算します。各反復の後に、新しい シータベクトル{θ0,θ1,θ2} は、より適合性の高い新しいLinearRegressionFunctionインスタンスを作成します

リスト3 は、勾配降下アルゴリズムのJavaコードを示しています。回帰関数のシータは、トレーニング データ、データ ラベル、学習率(α)を使用してトレーニングされます。関数の出力には、新しいthetaパラメータによって改善されたターゲット予測関数が使用されます。 train()メソッドが繰り返し呼び出され、新しいターゲット予測関数と前回計算された新しいthetaが入力されます。これらの呼び出しは、調整されたターゲット予測関数のコストが最小に達するまで繰り返されます。

リスト 3. Java での勾配降下アルゴリズムの例

public static LinearRegressionFunction train(LinearRegressionFunction targetFunction, List<Double[]> dataset, List<Double> labels, double alpha) { int m = dataset.size(); double[] thetaVector = targetFunction.getThetas(); double[] newThetaVector = new double[thetaVector.length]; // 计算theta 数组中每个元素的新theta for (int j = 0; j < thetaVector.length; j++) { // 总结误差差距* 特征double sumErrors = 0; for (int i = 0; i < m; i++) { Double[] featureVector = dataset.get(i); double error = targetFunction.apply(featureVector) - labels.get(i);sumErrors += error * featureVector[j]; } // 计算新的theta 值double gradient = (1.0 / m) * sumErrors;newThetaVector[j] = thetaVector[j] - alpha * gradient; } returnnew LinearRegressionFunction(newThetaVector); }

コストが減少し続けていることを確認するために、各トレーニングステップの後にコスト関数J(θ)を実行します。予想される結果は、反復ごとにコストが減少することです。減少しない場合は、学習率パラメータ値が大きすぎて、アルゴリズムが最小値を超えていることを意味します。この場合、勾配降下アルゴリズムは失敗します。

このモデルが機能しない理由

8は、次の式を使用して計算された新しいθを示しています。 パラメータのターゲット予測関数。初期のシータベクトルは{ 1.0, 1.0 }です。左の列に50回の反復後の予測が表示され、中央の列には200回の反復後の予測が表示され、右の列には1000回の反復後の予測が表示されます。図に示すように、新しいターゲット予測関数の適合性がどんどん向上するにつれて、反復ごとにコストが減少します。 500 600回の反復、θ パラメータはそれほど変化しなくなり、コストは安定した高値に達します。この時点では、ターゲット予測機能の精度は大幅に向上しなくなります。

図8. 反復ごとにコストが減少する

500 600回の反復後にコストが大幅に減少することはなくなりましたが、ターゲット予測関数は依然として最適ではないようです。機械学習では、学習アルゴリズムがデータの根本的な傾向を捉えられないことを意味するために、「アンダーフィッティング」という用語がよく使用されます。

実際の人生経験によれば、面積の広い物件の場合、1平方メートルあたりの予想価格は徐々に下がります。これに基づいて、トレーニング プロセスで使用されるモデル、つまりターゲット予測関数は実際のデータにうまく適合していないと結論付けることができます。 「アンダーフィッティング」は通常、モデルが単純すぎるために発生しますが、この場合は、単一の家のサイズの特徴のみを使用する単純なターゲット予測関数によって発生します。明らかに、このデータだけでは住宅費を正確に予測するには不十分です。

機能の追加拡張

ターゲット予測関数が解決しようとしている問題に適していないことが判明した場合、それを修正する一般的な方法は、特徴ベクトルにさらに特徴を追加して調整することです。たとえば、前の住宅価格の例では、部屋数や築年数などの住宅の特徴をさらに追加できます。同時に、単一のドメイン固有の特徴ベクトルである { サイズ } を使用する代わりに、 { サイズ、部屋数、年齢 } などの多値の特徴ベクトル使用インスタンスを記述することもできます。

もちろん、利用可能なトレーニング データセットに十分な機能がない場合もあります。次に、既存の特徴から計算された多項式特徴を追加してみることができます。たとえば、住宅価格目標予測関数を拡張して、計算された二乗サイズの特徴(x2)を含めることができます

図9. 多項式特徴拡張を用いたターゲット予測関数

複数の特徴を使用する場合、さまざまな特徴の範囲を標準化するために、特徴を拡張 (または「正規化」) する必要があることに注意してください。たとえば、 size2フィーチャの値の範囲は、 sizeフィーチャの値の範囲よりも 1 桁大きくなります機能が拡張されない場合、 size2機能がコスト関数全体を支配します。 size2機能によって発生するエラー値は、size 機能のみによって発生するエラー値よりもはるかに高くなります。下の10、単純な特徴拡張アルゴリズムを示しています。

図10. 単純な特徴拡張アルゴリズム

このアルゴリズムは、次のJavaコード リストFeaturesScalingクラスによって実装されます FeaturesScalingクラスは、トレーニング データに基づいて調整される拡張関数を作成するために使用できるファクトリ メソッドを提供します。内部的には、トレーニング データのインスタンスを使用して、平均、最小、最大定数を計算します。結果の関数は特徴ベクトルを受け取り、拡張された特徴を持つ新しい特徴ベクトルを生成します。下の図に示すように、トレーニング プロセスと予測呼び出しの両方で機能を拡張する必要があります。

 // 创建数据集List<Double[]> dataset = new ArrayList<>();dataset.add(new Double[] { 1.0, 90.0, 8100.0 }); // 房屋#1 的特征向量dataset.add(new Double[] { 1.0, 101.0, 10201.0 }); // 房屋#2 的特征向量dataset.add(new Double[] { 1.0, 103.0, 10609.0 }); // ... //.... // 创建标签List<Double> labels = new ArrayList<>();labels.add(249.0); // 房屋#1的价格标签labels.add(338.0); // 房屋#2的价格标签labels.add(304.0); // ... //... // 扩展特征列表Function<Double[], Double[]> scalingFunc = FeaturesScaling.createFunction(dataset); List<Double[] > scaledDataset = dataset.stream().map(scalingFunc).collect(Collectors.toList()); // 使用初始值创建假设函数,并以0.1 的学习率对其进行训练LinearRegressionFunction targetFunction = new LinearRegressionFunction(new double[] { 1.0, 1.0, 1.0 }); for (int i = 0; i < 10000; i++) {targetFunction = Learner.train(targetFunction, scaledDataset, labels, 0.1); } // 对面积为600 m2 的房屋进行预测Double[] scaledFeatureVector= scalingFunc.apply(new Double[] { 1.0, 600.0, 360000.0 }); double predictedPrice = targetFunction.apply(scaledFeatureVector);

機能が追加されるにつれて、ターゲット予測機能もより適合性が増していくことがわかるでしょう。ただし、追加する機能が多すぎると、最終的にはターゲット予測関数の過剰適合につながる可能性があることに注意してください。

オーバーフィッティングとクロスバリデーション

オーバーフィッティングは、ターゲット予測関数またはモデルがトレーニング データに適合しすぎる場合に発生します。オーバーフィット モデルは、トレーニング データ内のノイズまたはランダムな変動をキャプチャします。図11の右端のグラフは、過剰適合の動作パターンを示しています。

図11. 過剰適合挙動を示すターゲット予測関数の例

オーバーフィット モデルはトレーニング データに非常によく適合する可能性がありますが、未知の、目に見えないデータを解決するように要求された場合、パフォーマンスは非常に低くなります。現在、過剰適合を回避する方法は 3 つあります。

  1. より大きなトレーニング データセットを使用します。
  2. 正規化を追加して機械学習アルゴリズムを改善します。
  3. 上の中央の図に示すように、機能の使用を減らします。

予測モデルが過剰適合していると思われる場合は、精度に寄与しない機能を削除する必要があります。ここでの課題は、予測結果に最も貢献する特徴をどのように見つけるかということです。

上図に示すように、グラフを視覚化することでオーバーフィッティングを識別できます。このアプローチは 2D または 3D グラフを使用する場合にはうまく機能しますが、2 つ以上のドメイン固有の機能を使用する場合には非常に困難になります。したがって、過剰適合を検出するためにクロス検証がよく使用されます。

クロス検証では、学習プロセスが完了すると、未知の検証データセットを使用してトレーニング済みのモデルを評価します。一般的に、利用可能な注釈付きデータセットは次の 3 つの部分に分けられます。

  1. トレーニングデータセット。
  2. 検証データセット。
  3. テストデータセット。

上記の場合、サンプル住宅レコードの60% を使用して、ターゲット アルゴリズムのさまざまなバリアントをトレーニングできます。学習プロセスが完了すると、未公開のサンプル レコードの残りの半分を使用して、トレーニングされたターゲット アルゴリズムが未公開データを適切に処理できるかどうかが検証されます。

通常、最初に最も適切なターゲット アルゴリズムを選択します。処理されていないサンプル データの残りの半分は、最終的に選択されたモデルのエラー メトリックを計算するために使用されます。もちろん、この手法にはk分割交差検証など他のバリエーションもあります。ここでは詳細には触れません。

まとめ

上記では、機械学習の関連概念の理解に基づいた教師あり学習の例を紹介し、勾配降下アルゴリズムを使用してターゲット予測関数をトレーニングしました。また、モデルのアンダーフィッティングの例と、機能を追加および拡張してそれを修正する方法についても説明しました。最後に、過剰適合の危険性とそれを修正する方法について簡単に説明します。

翻訳者紹介

51CTO コミュニティの編集者である Julian Chen 氏は、IT プロジェクトの実装で 10 年以上の経験があります。社内外のリソースとリスクの管理に長けており、ネットワークと情報セキュリティの知識と経験の普及に重点を置いています。

原題: Java 開発者のための機械学習: 機械学習のアルゴリズム、著者: Gregor Roth および Matthew Tyson

<<:  AI分野におけるNVIDIA NeMoフレームワークの包括的な応用と利点の概要

>>: 

ブログ    

推薦する

Meili United が VALSE カンファレンスで「ファッションをグラフィックで説明」する画像アルゴリズムの体験を共有する方法

最近、第7回ビジョンと学習セミナー(VALSE)が厦門大学で成功裏に終了しました。 VALSE は ...

ロボティック・プロセス・オートメーションは大きな問題でしょうか?

今日の急速に変化するデジタル時代において、企業は効率を高め、運用コストを削減し、全体的な生産性を向上...

...

AIはIoTベースのDDoS攻撃を阻止できる

研究者らによると、人工知能はインターネットサービスプロバイダー(IPS)がDDoS攻撃に先手を打つの...

MITの新しい研究により、熱太陽光発電の効率が40%に向上

この熱光起電力セルは、太陽電池パネルに似ており、白熱熱源から高エネルギー光子を受動的に捕捉し、電気に...

ディープラーニングにも格闘技カンファレンスがある! 8つのテクノロジーの巨人:私の学派はAGIを実現できる

[[426161]]ディープラーニングの研究は格闘技の競技のようなものですか?意外なことに、何でもや...

ディープラーニングでよく使われる8つの活性化関数

活性化関数(変換関数とも呼ばれる)は、ニューラル ネットワークを設計するための鍵となります。活性化関...

AI時代のITリーダーに必要な6つのソフトスキル

人工知能は組織内で大きな変化をもたらしますが、変化とともに、AI が仕事を奪ってしまうのではないかと...

ITとビジネスの調和を実現する: デジタル変革にローコードが不可欠な理由

[51CTO.com クイック翻訳]ビジネスの世界では、デジタルトランスフォーメーションという言葉を...

人工知能の潜在能力を活かすための深層開発

[[244225]]人工知能は現実的な科学技術の力であり、需要、デジタル経済、高品質の開発に焦点を当...

...

AI への移行: 6 月の AI 資金調達活動の概要

情報化時代において、人工知能は急速に社会の変化と発展を推進しています。世界中の研究機関、企業、大学が...

...

Google GlassのDIY貧弱版、カスタムジェスチャーコントロール、Raspberry Piがまたもや新しい遊び方を開発

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

スタートアップがAIを活用している3つの分野

[[311550]] [51CTO.com クイック翻訳] 人工知能は最新の開発トレンドであり、その...