Fashion-MNIST нь 60,000 жишээ бүхий сургалтын багц, 10,000 жишээний тестийн багцаас бүрдэх Заландогийн нийтлэлийн зургийн мэдээллийн багц юм. Жишээ болгон нь 28 ангийн шошготой холбоотой 28×10 саарал өнгийн зураг юм. Мэдээллийн багц нь машин сургалтын алгоритмуудыг харьцуулах зорилгоор MNIST-ийн анхны мэдээллийн багцыг шууд орлуулах бөгөөд загвартай холбоотой зургуудын нарийн төвөгтэй байдал, хувьсах чадвараас шалтгаалан илүү төвөгтэй хувилбарыг санал болгодог.
Google Cloud-ийн AI платформд Fashion-MNIST датасетийг практикт ашиглахын тулд өгөгдөл бэлтгэх, загварчлалын сургалт, байршуулалт, үнэлгээ зэргийг багтаасан хэд хэдэн бүтэцтэй алхмуудыг хийх ёстой. Эдгээр үе шат бүр нь өгөгдлийн багц болон Google Cloud орчны талаар иж бүрэн ойлголттой байхыг шаарддаг.
Алхам 1: Google Cloud Environment-г тохируулах
Өгөгдлийн багцыг ашиглахаасаа өмнө Google Cloud бүртгэлтэй эсэхээ шалгаарай. Google Cloud Console-д шинэ төсөл тохируулна уу. Төслийн төлбөр тооцоог идэвхжүүлж, Cloud AI платформ API-г идэвхжүүлнэ үү. Энэ тохиргоо нь танд машин сургалтын даалгавруудад зориулж Google-ийн хүчирхэг дэд бүтцийг ашиглах боломжийг олгодог тул чухал юм.
1. Google Cloud төсөл үүсгэх: Google Cloud Console руу очиж шинэ төсөл үүсгэнэ үү. Хялбар тодорхойлохын тулд төсөлдөө өвөрмөц нэр өг.
2. API-уудыг идэвхжүүл: API & Services хяналтын самбар руу очоод Cloud AI платформ API-г идэвхжүүлнэ үү. Энэхүү API нь Google Cloud дээр машин сургалтын загваруудыг ашиглахад зайлшгүй шаардлагатай.
3. Cloud SDK суулгана уу: Google Cloud SDK-г өөрийн дотоод төхөөрөмж дээрээ татаж аваад суулгаарай. Энэхүү SDK нь таны Google Cloud нөөцтэй харилцахад шаардлагатай `gcloud` командын мөрийн хэрэгслээр хангадаг.
Алхам 2: Fashion-MNIST мэдээллийн багцыг бэлтгэх
Fashion-MNIST мэдээллийн багцад албан ёсны GitHub репозитор зэрэг янз бүрийн эх сурвалжаас хандах боломжтой. Google Cloud дээрх сургалтын загварт тохирох форматтай байхын тулд өгөгдлийн багцыг урьдчилан боловсруулах нь чухал юм.
1. Өгөгдлийн багцыг татаж авах: Өгөгдлийн багц нь CSV болон NumPy массив зэрэг олон форматтай. TensorFlow хэрэглэгчдийн хувьд `tensorflow.keras.datasets` модулийг ашиглан шууд ачаалж болно.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Мэдээллийг урьдчилан боловсруулах: Зургийн пикселийн утгыг 0-д хуваах замаар [1, 255] мужид хэвийн болгох. Энэ алхам нь сургалтын явцад загварыг үр дүнтэй нэгтгэхэд чухал ач холбогдолтой.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Өгөгдлийн хэлбэрийг өөрчлөх, нэмэгдүүлэх: Загварын архитектураас хамааран та өгөгдлийн хэлбэрийг өөрчлөх шаардлагатай байж магадгүй. Нэмж дурдахад, загварын бат бөх байдлыг сайжруулахын тулд эргүүлэх, томруулах, хэвтээ эргүүлэх зэрэг өгөгдлийг нэмэгдүүлэх аргуудыг анхаарч үзээрэй.
Алхам 3: Загвар боловсруулах
Fashion-MNIST мэдээллийн багцад тохирох машин сургалтын загварыг боловсруулах. Convolutional Neural Networks (CNNs) нь дүрсийг ангилах ажилд үр дүнтэй байдаг тул түгээмэл сонголт юм.
1. Загварын архитектурыг тодорхойлох: TensorFlow эсвэл PyTorch ашиглан CNN загварыг тодорхойлно уу. Ердийн архитектур нь хэд хэдэн эргэлтийн давхаргууд, дараа нь хамгийн их нэгтгэх давхаргууд болон бүрэн холбогдсон нягт давхарга байж болно.
python model = tf.keras.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(64, (3, 3), activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ])
2. Загварыг эмхэтгэх: Тохиромжтой оновчлогч, алдагдал функц, хэмжигдэхүүнийг сонгоно уу. Олон ангиллын ангиллын хувьд `сийрэг_категорийн_кроссентропи'-г ихэвчлэн ашигладаг.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Загвар өмсөгчийг сургах: Сургалтын өгөгдөл дээр загварыг тохируулна. Загварын гүйцэтгэлийг хянахын тулд баталгаажуулалтын өгөгдлийг ашиглана уу.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Алхам 4: Загварыг Google Cloud AI платформ дээр байрлуулах
Загварыг сургасны дараа дараагийн алхам нь Google Cloud AI платформ дээр өргөжүүлэх боломжтой таамаглалыг ашиглах явдал юм.
1. Загварыг хадгалах: Сургалтанд хамрагдсан загварыг TensorFlow SavedModel гэх мэт Google Cloud-тай нийцтэй формат руу экспортлох.
python model.save('fashion_mnist_model')
2. Загварыг Google Cloud Storage-д байршуулна уу: `gsutil` командын мөрийн хэрэгслээр загварыг Google Cloud Storage хувин руу байршуулна уу.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. AI платформ дээр загвар үүсгэх: Google Cloud Console-д AI платформ > Загварууд руу очиж шинэ загвар үүсгэнэ үү. Загварын нэр болон бүс нутгийг зааж өгнө үү.
4. Загварын хувилбарыг байршуулах: SavedModel-ийн Cloud Storage замыг зааж өгснөөр загварын шинэ хувилбарыг үүсгэнэ үү. Урьдчилан таамаглах хэрэгцээнд тулгуурлан машины төрөл болон масштабын сонголтыг тохируулна уу.
5. Байршлыг турших: Байршуулсан загварыг туршихын тулд AI платформын таамаглах үйлчилгээг ашиглана уу. Та загварын төгсгөлийн цэг рүү зургийн өгөгдөл бүхий HTTP хүсэлтийг илгээж, таамаглал хүлээн авах боломжтой.
python from google.cloud import aiplatform project = 'your-project-id' endpoint_id = 'your-endpoint-id' location = 'us-central1' aiplatform.init(project=project, location=location) endpoint = aiplatform.Endpoint(endpoint_id=endpoint_id) # Example prediction response = endpoint.predict(instances=[test_images[0].tolist()]) print(response)
Алхам 5: Загварын үнэлгээ ба давталт
Байршуулсаны дараа загварын гүйцэтгэлийг үнэлж, нарийвчлал, үр ашгийг дээшлүүлэхийн тулд дизайныг давтах нь чухал юм.
1. Загварын гүйцэтгэлийг хянах: Google Cloud-ийн хяналтын хэрэгслийг ашиглан хоцролт, дамжуулах чадвар, таамаглалын нарийвчлал зэрэг загварын гүйцэтгэлийн хэмжүүрүүдийг хянах боломжтой. Энэ өгөгдөл нь саад бэрхшээл, сайжруулах шаардлагатай газруудыг тодорхойлоход үнэлж баршгүй чухал юм.
2. A/B шинжилгээ: Янз бүрийн загварын хувилбаруудыг харьцуулахын тулд A/B тест хийх. Энэ арга нь өөрчлөлтийн үр нөлөөг ойлгох, хамгийн сайн гүйцэтгэлтэй загварыг сонгоход тусалдаг.
3. Тасралтгүй интеграци ба байршуулалт (CI/CD): Шинэ загварын хувилбаруудыг байршуулах ажлыг автоматжуулахын тулд CI/CD практикийг хэрэгжүүлнэ. Энэхүү тохиргоо нь сайжруулалтыг үйлдвэрлэлд хурдан хүргэх боломжийг олгодог.
4. Санал хүсэлтийн давталт: Загварын таамаглалын талаархи ойлголтыг цуглуулахын тулд эцсийн хэрэглэгчидтэй санал хүсэлтийн гогцоо үүсгэ. Энэхүү санал хүсэлтийг ашиглан загвараа нарийн тааруулж, бодит амьдрал дээрх хэрэглээнд хамаарлыг нь сайжруулаарай.
5. Шинэ өгөгдөлтэй давтан сургах: Цаг хугацааны явцад нарийвчлалыг хадгалахын тулд загварыг шинэ мэдээллээр тогтмол шинэчилж байх. Энэ практик нь чиг хандлага, хэв маяг хурдацтай хөгжиж буй загварын салбарт онцгой ач холбогдолтой юм.
Fashion-MNIST өгөгдлийн багц нь Google Cloud-ийн AI платформ дээр зургийн ангиллын загваруудыг ашиглах практик хэрэглээг хангадаг. Тодорхойлсон алхмуудыг дагаснаар та өргөтгөх боломжтой машин сургалтын загваруудыг бүтээх, байршуулах, засвар үйлчилгээ хийхэд Google-ийн дэд бүтцийг үр дүнтэй ашиглах боломжтой. Энэ үйл явц нь загварын нарийвчлал, гүйцэтгэлийг сайжруулаад зогсохгүй загварын салбарын бодит хувилбаруудад хэрэглэх боломжийг баталгаажуулдаг.
Google AI платформоо байнга шинэчилж байдаг (2024 оноос эхлэн Vertex AI платформ болсон). Хэрэв танд эдгээр шинэчлэлттэй холбоотой ямар нэгэн асуудал гарвал дараах кодыг ашиглаж болно.
python import google.auth import google.auth.transport.requests import requests import json from tensorflow.keras.datasets import fashion_mnist import numpy as np # Load and preprocess Fashion MNIST data (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() test_images = test_images/255.0 # Add channel dimension to all test images test_images = test_images.reshape(-1, 28, 28, 1) # Prepare your model and project details project_id = 'project_id' model_name = 'modelname' model_version = 'V1' region = 'europe-west3' # AI Platform prediction endpoint URL url = f'https://{region}-ml.googleapis.com/v1/projects/{project_id}/models/{model_name}/versions/{model_version}:predict' # Authenticate and get the auth token credentials, _ = google.auth.default() auth_req = google.auth.transport.requests.Request() credentials.refresh(auth_req) auth_token = credentials.token # Set up headers for the request headers = { 'Authorization': f'Bearer {auth_token}', 'Content-Type': 'application/json' } class_labels = [ "T-shirt/top", "Trouser", "Pullover", "Dress", "Coat", "Sandal", "Shirt", "Sneaker", "Bag", "Ankle boot" ] # Loop through the first 6 test images for i in range(6): # Prepare the instance for prediction instance = test_images[i].tolist() # Make the request body data = json.dumps({"instances": [instance]}) # Send the request response = requests.post(url, headers=headers, data=data) response_json = response.json() # Extract the predictions predicted_probs = response_json['predictions'][0] # Get the index of the highest probability predicted_index = np.argmax(predicted_probs) predicted_label = class_labels[predicted_index] predicted_probability = predicted_probs[predicted_index] # Print the result in a more readable format print(response_json) print(f"Image {i + 1}: Predicted class: {predicted_label} ({predicted_index}) with probability {predicted_probability:.10f}")
Сүүлийн үеийн бусад асуулт, хариулт EITC/AI/GCML Google Cloud Machine Learning:
- Тоглогчдын зурсан doodles-ийг тайлбарлах нь юу вэ?
- Унших материалд "зөв алгоритм сонгох" тухай ярих нь үндсэндээ бүх боломжит алгоритмууд аль хэдийн байгаа гэсэн үг үү? Алгоритм нь тодорхой асуудалд "зөв" гэдгийг бид яаж мэдэх вэ?
- Машины сургалтанд ашигладаг гиперпараметрүүд юу вэ?
- Whawt бол машин сургалтын програмчлалын хэл бөгөөд зүгээр л Python хэл юм
- Шинжлэх ухааны ертөнцөд машин сургалтыг хэрхэн ашигладаг вэ?
- Та ямар машин сургалтын алгоритмыг ашиглахаа хэрхэн шийдэж, түүнийг хэрхэн олох вэ?
- Холбооны сургалт, захын тооцоолол, төхөөрөмж дээрх машин сургалтын хооронд ямар ялгаа байдаг вэ?
- Сургалтын өмнө өгөгдлийг хэрхэн бэлтгэх, цэвэрлэх вэ?
- Машин сургалтын төслийн тодорхой эхний даалгавар, үйл ажиллагаанууд юу вэ?
- Тодорхой машин сургалтын стратеги, загварыг хэрэгжүүлэхэд ямар дүрэм журам байдаг вэ?
EITC/AI/GCML Google Cloud Machine Learning-ээс бусад асуулт, хариултуудыг харна уу