1-misol: model
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 = horsepower).
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!
