±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚyq.aliyun.com,Javascript
ÊʺÏ×ö»úÆ÷ѧϰÂð£¿ÕâÊÇÒ»¸öÎʺš£µ«Ã¿Ò»Î»¿ª·¢Õß¶¼Ó¦¸ÃÁ˽â»úÆ÷ѧϰ½â¾öÎÊÌâµÄ˼άºÍ·½·¨£¬²¢Ë¼¿¼£ºËü½«»á¸øÎÒÃǵŤ×÷´øÀ´Ê²Ã´£¿Í¬Ñù£¬Ëã·¨ÄÜÁ¦¿ÉÄÜ»áÊÇÏÂÒ»½×¶Î¹¤³ÌʦµÄ±êÅä¡£
|
|
µ¼Óï
±¾ÎÄÖ¼ÔÚͨ¹ý½²½âʶ±ðÊÖд×ֵĴ¦Àí¹ý³Ì£¬´ø¶ÁÕßÁ˽â»úÆ÷ѧϰ½â¾öÎÊÌâµÄÒ»°ã¹ý³Ì¡£±¾ÎÄÊʺÏÒÔϱ³¾°µÄ¶ÁÕßÔĶÁ£º
Äã²»ÐèÒª¾ß±¸ Python¡¢C++ µÄ±à³ÌÄÜÁ¦£ºÈ«ÎÄʹÓà Javascript ×÷Ϊ±à³ÌÓïÑÔ£¬ÇÒ²»ÒÀÀµÈκεÚÈý·½¿âʵÏÖ»úÆ÷ѧϰËã·¨£»
Äã²»ÐèÒª¾ß±¸Ëã·¨ÄÜÁ¦ºÍ¸ßÊýµÄ±³¾°£¬±¾ÎÄ»úÆ÷ѧϰËã·¨µÄʵÏÖ²»¹ý 20 ÐдúÂë¡£
×÷ÕßѧʶÓÐÏÞ£¬ÎÄÕÂÖÐÄÑÃâ»áÓÐÊè©£¬»¶ÓÖ¸Õý¡£
»úÆ÷ѧϰÖÐµÄ Hello World
¾ÍÏñÎÒÃÇѧϰ±à³ÌÓïÑÔÒ»Ñù£¬ÎÒÃǵĵÚÒ»¸ö³¢ÊÔ¾ÍÊÇÔÚÖÕ¶ËÃüÁîÐÐÖÐÊä³öµÄ ¡°Hello World¡±¡£»úÆ÷ѧϰÖеÄ
¡°Hello World¡± ±ãÊÇʶ±ðÊÖд×ÖÊý¾Ý¼¯¡£ÊÖд×ÖÊÇÐÎÈçÏÂÃæµÄͼÏñ£º

ÎÒÃÇ¿ÉÒÔ±àдһ¸öÍøÒ³³ÌÐò£¬ÌṩÊÖд°åµÄ¹¦ÄÜÀ´²¶»ñÓû§µÄÊäÈ룬²¢·µ»ØÎÒÃÇʶ±ðµÄÊý×Ö£ºÓû§ÔÚÊÖд°åÄÚдÏÂ
0 µ½ 9 ÖеÄÈÎÒâÒ»¸öÊý×Ö£¬ÁíÒ»²àÔòÏÔʾÎÒÃÇʶ±ðµÄ½á¹û¡£ÕýÈç Keras.js ÌṩµÄʾÀýÄÇÑù[[1]](#9)£º

ÈçºÎ±àд³öÕâÑùµÄÊÖдʶ±ð³ÌÐòÀ´»ñÈ¡Óû§µÄÊÖдÊäÈë²»ÊÇÎÒÃÇÕâÆªÎÄÕµÄÖØµã¡£ÎÒÃÇÖØµãÊÇ£¬µ±ÎÒÃǵijÌÐòµÃµ½ÕâÑùÒ»ÕÅͼÏñµÄÊý¾Ýºó£¬ÈçºÎʶ±ð³öÕâ×éÊý¾Ý±íʾµÄÊý×Ö£¿
Êý¾ÝµÄ±íʾºÍÊÕ¼¯
ÈËÀàÄܹ»´ÓͼÏñÖлñµÃÐÅÏ¢£¬µ«³ÌÐòÈçºÎÖªµÀ A ͼÊDZíʾ 1£¬B ͼÊDZíʾ 2 £¿Òò´ËÎÒÃÇÐèҪȷ¶¨Êý¾ÝµÄ±íʾ·½Ê½£ºÓÃÔõÑùµÄÒ»ÖÖ·½Ê½À´ÔÚ³ÌÐòÖбí´ïÒ»ÕŰ׵׺Ú×ÖµÄͼÏñËüµÄÏñËØµã·Ö²¼¼°µãµÄºÚ°×¶È£¿
¹Û²ì Keras.js µÄʾÀý£¬Äã»á·¢ÏÖÊÖд°åµÄÃæ»ýÊÇ 240px * 240px¡£¼´ÊÖд°åÄÚÓÐ
57,600 ¸öÏñËØµã¡£ÎÒÃÇ¿ÉÒÔ°ÑËüÃÇÆ½ÆÌ¿ªÀ´£¬²¢ÇÒÓà 0 µ½ 1 µÄÊýÖµ±íʾÿ¸öµãµÄºÚ°×¶È£¬ÆäÖÐÔ½½Ó½ü
1 Ôò±íʾ¸ÃÏñËØµãÔ½ºÚ£¬ÄÇô¾Í¿ÉÒÔÓÃÒ»¸öÊýÖµ¾ØÕóÀ´±íʾÊÖд×Ö£º

ÊÖд°å³ÌÐò»ñµÃÓû§µÄÊäÈë²¢Éú³ÉͼÏñºó£¬Ê¶±ð³ÌÐò½«Í¼Ïñת»»³ÉÎÒÃÇÐèÒªµÄÊý¾Ý¸ñʽ¡£Í¼Ïñʶ±ðÊÇÁíÒ»¸ö¹ã·ºµÄ¿ÎÌ⣬ÔÚÕâÀï²»ÔÙÕ¹¿ª¡£ÎÒÃÇ»áÖ±½ÓʹÓÃ
MNIST Êý¾Ý¼¯[[2]](#9)£¬ËüµÄÊý¾Ý±íʾ·½Ê½ÕýÈçÉÏÃæËùÃèÊöµÄÄÇÑù£¬Ö»ÊÇ MNIST Êý¾Ý¼¯ÖÐÿһÕÅͼƬÊǰüº¬
28 * 28 ¸öÏñËØµãµÄ¡£
È·¶¨ÁËÊý¾ÝµÄ±íʾ·½Ê½£¬½ÓÏÂÀ´ÎÒÃÇ»¹ÐèÒª¶Ôÿ¸öÊý¾ÝµÄʵ¼Êº¬Òå½øÐбêʶ¡£
»ØÏëÒ»ÏÂÎÒÃÇ×Ô¼ºÊÇÈçºÎÈÏʶÕâЩÊý×ֵģ¿¼´ÎÒÃÇÊÇÔõÑùÈ϶¨Í¼ÏñÖÐµÄ 1 ÐÎ×´±íʾµÄ¾ÍÊÇÊý×Ö 1£¿¡ª¡ª¡ª¡ªÊÂÎïµÄÈÏʶ¡£ÈÏÖªÊÇÓÉËûÈ˽ÌÓýµÄ¡£
ͬÑù£¬ÔÚ»úÆ÷ѧϰÖУ¬ÎÒÃÇÒ²ÐèÒª¡°½ÌÓý¡±»úÆ÷£ºA ÕâÑùµÄÏñËØµãÅÅÐò¾ÍÊÇ 1£¬ B ÕâÑùµÄÏñËØµãÅÅÐòÊÇ
2¡£Õâ¾ÍÊÇѵÁ·Êý¾Ý¡£
ΪÁËÊÕ¼¯ÑµÁ·Êý¾Ý£¬ÎÒÃÇ¿ÉÒÔËæ»úÕÒÈËÔÚÊÖдʶ±ð³ÌÐòÖлÊý×Ö£¬È»ºó±êʶËüµÄ½á¹û£¬×îÖÕÒÔÈκεÄÐÎʽ£¨Îı¾¡¢±í¸ñ...£©´¢´æ¡£ÒÔÊÖд×ÖΪÀý£¬ÎÒÃÇ¿ÉÒÔÓÃÎı¾µÄ·½Ê½´æ´¢£¬¸ñʽ¿ÉÒÔÊÇÕâÑù£º
0 0 0.3 0 1 0
... n(=28) | 4
1 0 0.1 0 0 0 ... n(=28) | 6
....
n(=1000) |
ÆäÖÐÿһÐдú±íÒ»¸öѵÁ·Êý¾Ý£¬Ê¹Óà ¡°|¡± ·Ö¸îÊý¾ÝµÄ±íʾºÍËü¶ÔÓ¦µÄÊý×Ö¡£
ÔÚ±¾ÎÄÖÐÎÒÃǽ«Ö±½ÓʹÓà MNIST Êý¾Ý¼¯£¬Òò´ËÈçºÎÊÕ¼¯Êý¾ÝÔÚÕâÀï²»ÔÙÕ¹¿ª¡£ÔÚ»úÆ÷ѧϰÖо³£»áʹÓù«¿ªµÄÊý¾Ý¼¯À´½øÐÐѵÁ·ºÍ²âÊÔ¡£
ͨ¹ýÈ·¶¨Êý¾ÝµÄ±íʾºÍÊÕ¼¯£¬ÎÒÃÇ¿ÉÒÔÁ˽⵽µÄÊÇ£º
Êý¾ÝÊÇÒ»ÇлúÆ÷ѧϰµÄ»ù´¡£»
ѵÁ·Êý¾ÝµÄºÃ»µ½«»áÓ°Ïìµ½ÎÒÃÇ»úÆ÷ѧϰËã·¨Ô¤²âµÄ׼ȷÂÊ£º
ÏëÏóÒ»ÏÂÈç¹ûijЩÊý¾ÝÎÒÃDZêʶ´íÎó£¬°Ñ 1 ±êʶ³É 2£»
ÏëÏóÒ»ÏÂÈç¹ûѵÁ·Êý¾ÝÖÐÓдóÁ¿µÄÖØ¸´Öµ£¬»òij¸öÊý×ÖµÄÊý¾ÝÁ¿Ìرð´ó¶øÁíÍâһЩÊý×ÖµÄÊý¾ÝÁ¿ºÜС¡£
×¼±¸Êý¾Ý
ÎÒÃÇÊÕ¼¯µ½µÄÊý¾Ý¿ÉÄÜ»áÒÔÈκεÄÒ»ÖÖÐÎʽ´æ´¢£¬ÀýÈçÎı¾¡¢±í¸ñ¡¢¶þ½øÖÆÎļþµÈµÈ¡£MNIST Êý¾Ý¼¯ÊÇʹÓöþ½øÖÆ´æ´¢µÄ£¬Òò´ËÔÚ³ÌÐòÖÐÎÒÃÇÐèÒª½«Ëüת»»Îª
Javascript ±È½ÏÈÝÒײÙ×÷µÄµÄÊý¾Ý¸ñʽ£¬ÀýÈçÊý×é¡£
±¾ÎÄÖÐÎÒÃǽ«Ê¹ÓÃÒ»¸ö NPM °ü mnist[[3]](#9) ÌṩµÄ£¬ÒѾת»»ºÃµÄÊý¾Ý£¬ËüµÄ¸ñʽÈçÏ£º
[
{
input: [0, 0.4, 0.5, 0, 0.1, 0, 0, 0, 0, ...,
n], // n = 728
output: [0, 1, 0, 0, 0, 0, 0, 0, 0, 0], // 1
},
{
input: [1, 0.4, 0.5, 0, 0.8, 0, 0.1, 0, 1, ...,
n], // n = 728
output: [0, 0, 1, 0, 0, 0, 0, 0, 0, 0], // 2
},
....
] |
ÆäÖÐ input ÊÇͼÏñµÄÊý¾Ý±íʾ£¬output ÊÇͼÏñʵ¼Ê´ú±íµÄÊý×Ö¡£output ʹÓÃÁËÒ»ÖÖ½Ð×ö
One-Hot µÄ±àÂ뷽ʽ£¬ËüÒ»¹²ÓÐ 10 ¸öÏΪ 1 µÄÏî¾ÍÊÇËü±íʾµÄÊý×Ö£¨µÚÒ»ÏîΪ 1 Ôò´ú±íÊÇ
0£¬µÚ¶þÏîΪ 1 Ôò´ú±íÊÇ 2 £¬ÒÔ´ËÀàÍÆ£©¡£
Ñ¡ÔñÒ»ÖÖËã·¨
ͨ¹ýÉÏÃæµÄÊý¾Ý×¼±¸£¬ÎÒÃÇÒѾ°ÑÒ»¸öÏÖʵÖеÄÎÊÌâת»¯³ÉÁËÒ»¸öÊýѧÎÊÌ⣺¸ø¶¨ 728 ¸ö 0 µ½ 1
Ö®¼äÊýÖµµÄÌØÕ÷£¬Ó¦¸Ã½«Ëü·ÖÀൽ 0 ~ 9 ÄĸöÊý×ÖÖУ¿
Õâ¾ÍÊÇ»úÆ÷ѧϰÖеÄÖ÷ÒªÈÎÎñ¡ª¡ª·ÖÀà¡£ÓкܶàµÄ»úÆ÷ѧϰËã·¨¿ÉÒÔÓÃÀ´½â¾ö·ÖÀàÎÊÌ⣬Îı¾½«Ê¹Óà k-½üÁÚËã·¨(k-NN)[[4]](#9)À´½â¾öÕâ¸öÎÊÌ⣬ÒòΪËü·Ç³£ÓÐЧÇÒÈÝÒ×Àí½â¡£
k-½üÁÚËã·¨¸ÅÊö
ÔÚÒ»¸ö 10 * 10 µÄ¶þÎ¬Æ½ÃæÄÚ»Ò»ÌõÏß°ÑËü·Ö³É 2 ¸öÇøÓò(A/B)¡£¼ÙÉèÎÒÃDz»ÖªµÀÏßÊÇÈçºÎ»µÄ£¬µ«ÏÖÒÑÖªÓÐ
4 ¸öµã£¬a µã×ø±êÊÇ (1, 1) ÊôÓÚÇøÓò A£¬b µã×ø±êÊÇ (2, 2) ÊôÓÚÇøÓò A£¬c µã×ø±êÊÇ
(9, 9) ÊôÓÚÇøÓò B£¬d µã×ø±êÊÇ (8, 8) ÊôÓÚÇøÓò B¡£ÕâʱºòÔÙ¸ø¶¨Ò»¸ö e µã×ø±êÊÇ
(8.5, 8.5) £¬ÇëÎÊËü×îÓпÉÄÜÔÚÄĸöÇøÓòÄÚ£¿


¶þÎ¬Æ½ÃæÍ¼Ê¾Àý
¾ø´ó¶àÊýÈ˶¼»á˵¡°¿ÉÄÜÊÇ B¡±¡£ÎÒÃÇÊÇÈçºÎÕâ¸ö´ð°¸µÄ£¿¡ª¡ªÒòΪËüºÍ c, d ¡°¿´ÆðÀ´¸ü½Ó½üһЩ£¬¸üÓпÉÄÜÔÚͬһ¸öÇøÓò¡±¡£Í¬ÑùµÄÍÆÂÛ¿ÉÒÔÑÓÉìÖÁÈýά¡¢ËÄάÉõÖÁ¸ü¶àγ¶ÈµÄÊý¾ÝÖС£MNIST
µÄÊý¾Ý±íʾ¾ÍÊÇ 728 ¸öÌØÕ÷µÄ¶àγÊý¾Ý£¬k-½üÁÚË㷨ͬÑùÊÊÓá£
´æÔÚÒ»¸öѵÁ·Ñù±¾¼¯£¬²¢ÇÒÑù±¾¼¯ÖÐÿ¸öÊý¾Ý¶¼´æÔÚ±êÇ©£¬¼´ÎÒÃÇÖªµÀÑù±¾¼¯ÖÐÿһÊý¾ÝÓëËùÊô·ÖÀàµÄ¶ÔÓ¦¹ØÏµ¡£ÊäÈëûÓбêÇ©µÄÐÂÊý¾Ýºó£¬½«ÐÂÊý¾ÝµÄÿ¸öÌØÕ÷ÓëÑù±¾¼¯ÖÐÊý¾Ý¶ÔÓ¦µÄÌØÕ÷½øÐбȽϣ¬È»ºóËã·¨ÌáÈ¡Ñù±¾ÌØÕ÷×î½üÁڵķÖÀà±êÇ©¡£Ò»°ãÀ´Ëµ£¬ÎÒÃÇֻѡÔñÑù±¾Êý¾Ý¼¯ÖÐǰ
k ¸ö×îÏàËÆµÄÊý¾Ý£¬Õâ¾ÍÊÇ k-½üÁÚËã·¨µÄ k µÄ³ö´¦¡£
¡ª¡ª¡¶»úÆ÷ѧϰʵս¡·k ½üÁÚËã·¨
Á½¸öÏòÁ¿Ö®¼äµÄ¾àÀë¿ÉÒÔͨ¹ýÅ·¼¸ÀïµÃ¾àÀ빫ʽÇóµÃ£º

ÓÚÊÇʵÏÖÒ»¸ö k-NN Ëã·¨¾ÍºÜ¼òµ¥ÁË£º
function classify(x,
trainingData, labels, k) {
// È·¶¨Ä¿±êµã x ÓëѵÁ·Êý¾ÝÖÐÿ¸öµãµÄ¾àÀ루ŷ¼¸ÀïµÃ¾àÀ빫ʽ£©
const distances =[];
trainingData.forEach(element => {
let distance = 0;
element.forEach((value, index) => {
const diff = x[index] - value;
distance += (diff * diff);
});
distances.push(Math.sqrt(distance));
});
// ½«ÑµÁ·Êý¾Ý°´ÕÕÓë x µãµÄ¾àÀë´Ó½üµ½Ô¶ÅÅÐò
const sortedDistIndicies = distances
.map((value, index) => {
return {value, index};
})
.sort((a, b) => a.value - b.value );
// È·¶¨Ç° k ¸öµãÀà±ðµÄ³öÏÖÆµÂÊ
const classCount = {};
for (let i = 0; k > i; i++) {
const voteLabel = labels[sortedDistIndicies[i].index];
classCount[voteLabel] = (classCount[voteLabel]
|| 0) + 1;
}
// ·µ»Ø³öÏÖÆµÂÊ×î¸ßµÄÀà±ð×÷Ϊµ±Ç°µãµÄÔ¤²â·ÖÀà
let predictedClass = '';
let topCount = 0;
for (const voteLabel in classCount) {
if (classCount[voteLabel] > topCount) {
predictedClass = voteLabel;
topCount = classCount[voteLabel];
}
}
return predictedClass;
} |
²âÊÔËã·¨
ΪÁËÑéÖ¤ÎÒÃǵÄËã·¨µÄЧ¹û£¬ÎÒÃÇÐèÒª¶ÔÆä½øÐвâÊÔ¡£Õâ¾ÍÐèÒªÒýÈë²âÊÔÊý¾Ý¡£ÔÚ»úÆ÷ѧϰÖÐͨ³£»á½«ÊÕ¼¯µ½µÄÊý¾Ýͨ¹ýÒ»¶¨µÄ·½·¨»®·ÖΪѵÁ·Êý¾ÝºÍ²âÊÔÊý¾ÝÈ»ºóÓÃÓÚѵÁ·ºÍ²âÊÔ¡£ÈçºÎ»®·ÖÊý¾ÝÔÚÕâÀï²»Õ¹¿ª£¬ÔÚ±¾Ê¾ÀýÖУ¬ÎÒÃǰ´ÕÕ
80:20 µÄ±ÈÀýÀ´»®·ÖѵÁ·ºÍ²âÊÔÊý¾Ý£¬»¥³âÐÔºÍËæ»úÐÔÓÉ MNIST ¿â½øÐб£Ö¤¡£
Äõ½ÑµÁ·ºÍ²âÊÔÊý¾ÝºóÎÒÃǾͿÉÒÔ¶ÔÉÏÒ»²½±àдµÄËã·¨½øÐвâÊÔÁË£¬ÎÒÃÇÓôíÎóÂÊÀ´ÆÀ¹ÀËã·¨µÄ¿É¿¿ÐÔ£¬´íÎóÂÊÔ½µÍÔòÔ½¿É¿¿£º
const classify
= require('./kNN');
// 1. ÊÕ¼¯Êý¾Ý£ººöÂÔ£¬Ö±½ÓʹÓà MNIST
const mnist = require('mnist');
// 2. ×¼±¸Êý¾Ý
let trainingImages = [];
let labels = [];
// »®·ÖÊý¾Ý
const trainingCount = 8000;
const testCount = 2000;
const set = mnist.set(trainingCount, testCount);
const trainingSet = set.training;
const testSet = set.test;
// ΪÎÒÃÇµÄ k-NN Ë㷨׼±¸Ìض¨µÄÊý¾Ý¸ñʽ
trainingSet.forEach(({input, output}) =>
{
// One-Hot to number
const number = output.indexOf(output.reduce((max,
activation) => Math.max(max, activation),
0));
trainingImages.push(input);
labels.push(number);
});
// 3. ·ÖÎöÊý¾Ý£ºÔÚÃüÁîÐÐÖмì²éÊý¾Ý£¬È·±£ËüµÄ¸ñʽ·ûºÏÒªÇó
console.log('trainingImages', JSON.stringify(trainingImages));
console.log('labels', JSON.stringify(labels));
// 4. ²âÊÔËã·¨
let errorCount = 0;
const startTime = Date.now();
testSet.forEach(({input, output}, key) =>
{
const number = output.indexOf(output.reduce((max,
activation) => Math.max(max, activation),
0));
const predicted = classify(input, trainingImages,
labels, 3);
const result = predicted == number;
console.log(`${key}. number is ${number}, predicted
is ${predicted}, result is ${result}`);
if (!result) {
errorCount++;
}
});
console.log(`The total number of errors is:
${errorCount}`);
console.log(`The total error rate is: ${errorCount/testCount}`);
console.log(`Spend: ${(Date.now() - startTime)
/ 1000}s`); |
ÈçÎÞÒâÍ⣬ÄãµÄÖն˽«»áÊä³öÕâÑùµÄ½á¹û£º

×îÖÕ´íÎóÂʵÄÖµ´óÔ¼ÊÇ 5%¡£Õâ¸ö½á¹ûºÃÂ𣿲¢²»ºÃ¡£ÎÒÃÇ¿ÉÒÔͨ¹ý¸Ä±ä k µÄÖµ¡¢¸Ä±äѵÁ·Ñù±¾µÄÊýĿӰÏì
k-½üÁÚËã·¨µÄ´íÎóÂÊ£¬¶ÁÕß¿ÉÒÔ³¢ÊԸıäÕâЩ±äÁ¿Öµ¹Û²ì´íÎóÂʵı仯¡£Êµ¼ÊÉÏ£¬Ö»Òª½« k-½üÁÚËã·¨ÉÔ¼Ó¸ÄÁ¼£¬ÎÒÃǾÍÄܹ»°Ñ´íÎóÂʽµµ½
1% ÒÔÏ£¡

±í¸ñÖÐÁгöÁËһЩ k-½üÁÚËã·¨¶Ô MNIST
Êý¾Ý¼¯½øÐвâÊԵĴíÎóÂÊ
ÎÒÃÇÒ²Ó¦¸Ã×¢Òâµ½µÄÊÇ£¬ÎÒÃǵÄËã·¨ÔÚ 8000 ÌõѵÁ·Êý¾Ý¼¯ºÍ 2000 Ìõ²âÊÔÊý¾Ý¼¯ÉϽøÐвâÊÔ£¬ÔËÐÐÁË
325 Ã룡ÕâÊÇÒ»¸öºÜ²îµÄ½á¹û¡£ÔÚʵ¼ÊÉú²ú»·¾³ÖУ¬ÎÒÃDz»½öÓ¦¸Ã¹Ø×¢×¼È·ÂÊÒ²Ó¦¸Ã¹Ø×¢Ëã·¨µÄÖ´ÐÐЧÂÊ¡£
ʹÓÃËã·¨
Ö»Òª²âÊÔµÄË㷨Ч¹û·ûºÏÔ¤ÆÚ£¬ÎÒÃǾͿÉÒÔ½«Ëã·¨²¿Êðµ½Éú²ú»·¾³½øÐÐʹÓÃÁË¡£ÎÒÃÇ¿ÉÒÔ½«Ëã·¨ºÍÊÖдʶ±ð³ÌÐò½áºÏÆðÀ´£¬Íê³ÉÒ»ÕûÌ×»ñÈ¡ÊäÈë
-> Ëã·¨Ô¤²â -> Êä³ö½á¹ûµÄÁ÷³Ì£ºÊ×ÏÈÊÖдʶ±ð³ÌÐò½«Óû§ÊäÈëµÄͼÏñת»»ÎªÎÒÃÇÆÚÍûµÄÊý¾Ý¸ñʽ£¬È»ºóÖ´ÐÐÎÒÃǵÄËã·¨»ñȡԤ²âµÄ·ÖÀà¡£´úÂë¿ÉÄÜÊÇÕâÑù£º
// ÊÖдʶ±ð³ÌÐò½«Óû§ÊäÈëµÄͼÏñת»»ÎªÎÒÃÇÆÚÍûµÄÊý¾Ý¸ñʽ
const input = [0, 0.3, 1, 1, 0, 0, 0.2, ...];
// Ö´ÐÐËã·¨
classify(input, trainingImages, labels, 3); |
ºÜÒź¶£¬ÔÚÖ´ÐÐË㷨ʱÎÒÃÇ»¹ÊÇ¿´µ½ÁË trainingImages µÄ´æÔÚ¡£ÕâÒâζ×Åÿ´ÎÔ¤²âÎÒÃǵĻúÆ÷¶¼ÐèÒª¸øÑµÁ·Êý¾Ý×¼±¸¸ñÍâµÄ´æ´¢¿Õ¼ä¡£¼ÙÉèѵÁ·Êý¾ÝºÜ´ó£¨ÕâºÜ³£¼û£©£¬Ôò»á¸øÎÒÃǵÄÉú²ú»·¾³»úÆ÷Ôì³É¾Þ´óµÄÄÚ´æÑ¹Á¦¡£
ÿ´Îµ÷ÓÃËã·¨»¹ÐèÒª´«ÈëѵÁ·Êý¾ÝµÄ·½Ê½¼´ÀË·Ñ´æ´¢¿Õ¼äÒ²²»ÓÅÑÅ£¬ËüÖ»ÄÜ×÷ΪÎÒÃǵÄʾÀý½øÐÐʹÓá£
½øÒ»²½Ë¼¿¼
±¾ÎÄÎÒÃÇʹÓà Javascript ʵÏÖÁËÒ»¸ö·Ç³£¼òµ¥µÄ»úÆ÷ѧϰËã·¨£¬²¢ÓÃÆäÀ´²âÊÔ MNIST Êý¾Ý¼¯£¬ÍêÕû´úÂëʵÏÖÔÚÕâ¸ö²Ö¿âÖС£ÕâÖ»ÊÇÒ»¸ö¼òµ¥µÄʾÀý£¬µ«´ÓÖÐÎÒÃÇÁ˽⵽ÁË»úÆ÷ѧϰµÄ»ù±¾¸ÅÄîºÍ½â¾öÎÊÌâµÄÒ»°ã¹ý³Ì¡£½øÒ»²½Ë¼¿¼£¬ÉÏÃæµÄÁ÷³ÌÖÐÿһ²½¶¼¿ÉÄܱ»ÓÅ»¯£º
¶ÔÓÚÊÖд×Ö£¬»¹ÓÐûÓÐÆäËûµÄÊý¾Ý±íʾ·½Ê½£¿ÀýÈçÎÒÃÇ·ÇÒªÓà 0 µ½ 1 µÄÊýÖµÀ´±íʾµãµÄºÚ°×¶ÈÂð£¿
ѵÁ·Êý¾Ý¼¯ÊÇÔ½´óÔ½ºÃÂð£¿ÀýÈçÎÒÃǽ«ÊÖд×ÖËùÓеÄÌØÕ÷ÅÅÁÐ×éºÏ (28^28) ¸öÊý¾ÝÁ¿×÷ΪѵÁ·Êý¾Ý¼¯£»
ÈçºÎµ÷ÕûËã·¨²ÎÊýÒÔ»ñµÃ×î¼ÑµÄÊÕÒæ£¨×¼È·ÂʺÍЧÂÊ£©£¿ |