2-misol: model


ULASHISH

Ma’lumotlarni aralashtirish

O‘qitishdan oldin ma’lumotlarni doimo aralashtiring.

Model o‘qitilganda ma’lumotlar kichik to‘plamlarga (batch) bo‘linadi. So‘ngra har bir to‘plam modelga uzatiladi. Aralashtirish model bir xil ma’lumotlarni qayta-qayta olishining oldini olish uchun muhim. Agar bir xil ma’lumotlar ikki marta ishlatilsa, model ma’lumotlarni umumlashtira olmaydi va to‘g‘ri natija bermaydi. Aralashtirish har bir to‘plamdagi ma’lumotlarning xilma-xilligini oshiradi.

Misol

tf.util.shuffle(data);

TensorFlow tenzorlari

TensorFlow’dan foydalanish uchun kirish ma’lumotlarini tenzor ma’lumotlariga aylantirish kerak:

// Map x values to Tensor inputs const inputs = values.map(obj => obj.x); // Map y values to Tensor labels const labels = values.map(obj => obj.y); // Convert inputs and labels to 2d tensors const inputTensor = tf.tensor2d(inputs, [inputs.length, 1]); const labelTensor = tf.tensor2d(labels, [labels.length, 1]);

Ma’lumotlarni normallashtirish

Ma’lumotlar neyron tarmoqda ishlatilishidan oldin normallashtirilishi kerak.

Sonli ma’lumotlar uchun ko‘pincha min-max usuli yordamida olingan 0 - 1 oralig‘i eng yaxshi natija beradi:

const inputMin = inputTensor.min(); const inputMax = inputTensor.max(); const labelMin = labelTensor.min(); const labelMax = labelTensor.max(); const nmInputs = inputTensor.sub(inputMin).div(inputMax.sub(inputMin)); const nmLabels = labelTensor.sub(labelMin).div(labelMax.sub(labelMin));


Tensorflow modeli

Mashinali o‘rganish modeli — kirish ma’lumotlaridan natija hosil qiluvchi algoritm.

Bu misolda ML modelini aniqlash uchun 3 ta qator ishlatiladi:

const model = tf.sequential(); model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true})); model.add(tf.layers.dense({units: 1, useBias: true}));

Ketma-ket (Sequential) ML modeli

const model = tf.sequential(); ketma-ket (Sequential) ML modelini yaratadi.

Ketma-ket modelda kirish ma’lumotlari to‘g‘ridan-to‘g‘ri chiqishga oqib o‘tadi. Boshqa modellar bir nechta kirish va bir nechta chiqishga ega bo‘lishi mumkin. Sequential — eng oddiy ML modeli. U modelni qatlamma-qatlam, keyingi qatlamga mos keladigan vaznlar bilan qurish imkonini beradi.

TensorFlow qatlamlari

model.add() modelga ikkita qatlam qo‘shish uchun ishlatiladi.

tf.layer.dense — aksariyat hollarda yaraydigan qatlam turi. U o‘z kirishlarini vaznlar matritsasiga ko‘paytiradi va natijaga son (siljish — bias) qo‘shadi.

Shakllar va birliklar (units)

inputShape: [1], chunki bizda 1 ta kirish bor (x = rooms).

units: 1 vaznlar matritsasining o‘lchamini belgilaydi: har bir kirish (x qiymati) uchun 1 ta vazn.


Modelni kompilyatsiya qilish

Modelni belgilangan optimallashtiruvchi (optimizer) va yo‘qotish (loss) funksiyasi bilan kompilyatsiya qiling:

model.compile({loss: 'meanSquaredError', optimizer:'sgd'});

Kompilyator sgd optimallashtiruvchisidan foydalanishga sozlangan. Undan foydalanish oson va u ancha samarali.

meanSquaredError — model bashoratlarini haqiqiy qiymatlar bilan solishtirish uchun foydalanmoqchi bo‘lgan funksiyamiz.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!