ปัญญาประดิษฐ์

บ้าน AI คืออะไร? ความฉลาดของมนุษย์ ประวัติศาสตร์ภาษา ประวัติของตัวเลข ประวัติคอมพิวเตอร์ หุ่นยนต์ เปลี่ยนงาน ตัวอย่างของ AI ทฤษฎีความคิด การเขียนโปรแกรม JavaScript AI ในเบราว์เซอร์

คณิตศาสตร์

คณิตศาสตร์ ฟังก์ชันเชิงเส้น พีชคณิตเชิงเส้น เวกเตอร์ เมทริกซ์ เทนเซอร์

สถิติ

ความน่าจะเป็น สถิติ การกระจาย

กราฟิก

AI Plotter AI กราฟเชิงเส้น แผน AI กระจาย

AI Science

วิทยาศาสตร์ การรวบรวมข้อมูล การจัดกลุ่ม การถดถอย การเรียนรู้ของเครื่อง โครงข่ายประสาทเทียม

การเรียนรู้ของเครื่อง

Perceptrons การยอมรับ การฝึกอบรม การทดสอบ การเรียนรู้ คำศัพท์ Brain.js

TensorFlow

TFJS กวดวิชา TFJS Operations TFJS รุ่น TFJS Viewer

ตัวอย่าง 1

Ex1 Intro ข้อมูล Ex1 รุ่น Ex1 การฝึกอบรม Ex1

ตัวอย่าง 2

บทนำ Ex2 ข้อมูล Ex2 รุ่น Ex2 การฝึกอบรม Ex2

JS กราฟิก

บทนำ กราฟแคนวาส กราฟ Plotly.js กราฟ Chart.js กราฟ Google กราฟ D3.js

ตัวอย่างที่ 1 รุ่น


สับเปลี่ยนข้อมูล

สับเปลี่ยนข้อมูลก่อนการฝึกเสมอ

เมื่อโมเดลได้รับการฝึกฝน ข้อมูลจะถูกแบ่งออกเป็นชุดย่อย (แบทช์) จากนั้นแต่ละชุดจะป้อนเข้าสู่แบบจำลอง การสับเปลี่ยนมีความสำคัญในการป้องกันไม่ให้โมเดลรับข้อมูลเดิมซ้ำอีกครั้ง หากใช้ข้อมูลเดียวกันสองครั้ง โมเดลจะไม่สามารถสรุปข้อมูลและให้ผลลัพธ์ที่ถูกต้องได้ การสับเปลี่ยนให้ข้อมูลที่หลากหลายยิ่งขึ้นในแต่ละชุดงาน

ตัวอย่าง

tf.util.shuffle(data);

เทนเซอร์โฟลว์ เทนเซอร์

ในการใช้ TensorFlow จำเป็นต้องแปลงข้อมูลที่ป้อนเป็นข้อมูลเทนเซอร์:

// 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]);

การปรับข้อมูลให้เป็นมาตรฐาน

ข้อมูลควรถูกทำให้เป็นมาตรฐานก่อนที่จะใช้ในโครงข่ายประสาทเทียม

ช่วง 0 - 1 โดยใช้ค่าต่ำสุด-สูงสุดมักจะดีที่สุดสำหรับข้อมูลตัวเลข:

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));

แบบจำลองเทนเซอร์โฟลว์

Machine Learning Modelเป็นอัลกอริธึมที่สร้างเอาต์พุตจากอินพุต

ตัวอย่างนี้ใช้ 3 บรรทัดเพื่อกำหนดML Model :

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

ML Model ตามลำดับ

รูปแบบ const = tf.sequential(); สร้างSequential ML Model

ในรูปแบบตามลำดับ อินพุตจะไหลโดยตรงไปยังเอาต์พุต รุ่นอื่นๆ สามารถมีได้หลายอินพุตและหลายเอาต์พุต Sequential เป็นโมเดล ML ที่ง่ายที่สุด ช่วยให้คุณสร้างแบบจำลองทีละชั้น โดยมีน้ำหนักที่สอดคล้องกับเลเยอร์ถัดไป

ชั้นเทนเซอร์โฟลว์

model.add()ใช้เพื่อเพิ่มสองชั้นให้กับโมเดล

tf.layer.denseเป็นประเภทเลเยอร์ที่ใช้งานได้ในกรณีส่วนใหญ่ มันคูณอินพุตด้วยเมทริกซ์น้ำหนักและเพิ่มตัวเลข (อคติ) ให้กับผลลัพธ์

รูปร่างและหน่วย

inputShape: [1]เพราะเรามี 1 อินพุต (x = แรงม้า)

หน่วย: 1กำหนดขนาดของเมทริกซ์น้ำหนัก: 1 น้ำหนักสำหรับแต่ละอินพุต (ค่า x)


รวบรวมโมเดล

รวบรวมโมเดลด้วย ฟังก์ชัน เพิ่มประสิทธิภาพและการสูญเสีย ที่ระบุ :

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

คอมไพเลอร์ถูกตั้งค่าให้ใช้เครื่องมือเพิ่มประสิทธิภาพsgd ใช้งานง่ายและมีประสิทธิภาพมาก

meanSquaredError เป็นฟังก์ชันที่เราต้องการใช้เปรียบเทียบการทำนายแบบจำลองและค่าจริง