Fashion-MNIST je skup podataka slika Zalandovih članaka, koji se sastoji od skupa za obuku od 60,000 primjera i testnog skupa od 10,000 primjera. Svaki primjer je slika 28×28 u sivim tonovima, povezana s oznakom iz 10 klasa. Skup podataka služi kao direktna zamjena za originalni MNIST skup podataka za benčmarking algoritama mašinskog učenja, pružajući izazovniju alternativu zbog svoje složenosti i varijabilnosti slika povezanih s modom.
Da bi se skup podataka Fashion-MNIST praktično koristio na Google Cloud platformi AI, potrebno je slijediti nekoliko strukturiranih koraka koji uključuju pripremu podataka, obuku modela, implementaciju i evaluaciju. Svaka od ovih faza zahtijeva sveobuhvatno razumijevanje i skupa podataka i Google Cloud okruženja.
Korak 1: Postavljanje Google Cloud okruženja
Prije korištenja skupa podataka, uvjerite se da imate Google Cloud račun. Postavite novi projekat u Google Cloud Console. Omogućite naplatu za svoj projekat i aktivirajte Cloud AI Platform API. Ovo podešavanje je važno jer vam omogućava da iskoristite Googleovu robusnu infrastrukturu za zadatke mašinskog učenja.
1. Kreirajte Google Cloud projekat: Idite na Google Cloud Console i kreirajte novi projekat. Dodijelite jedinstveno ime svom projektu za laku identifikaciju.
2. Omogućite API-je: Idite na kontrolnu tablu za API i usluge i omogućite Cloud AI Platform API. Ovaj API je neophodan za implementaciju modela mašinskog učenja na Google Cloud.
3. Instalirajte Cloud SDK: Preuzmite i instalirajte Google Cloud SDK na vaš lokalni računar. Ovaj SDK pruža alat naredbene linije `gcloud`, koji je neophodan za interakciju s vašim Google Cloud resursima.
Korak 2: Priprema skupa podataka Fashion-MNIST
Fashion-MNIST skupu podataka može se pristupiti iz različitih izvora, uključujući službeno GitHub spremište. Neophodno je prethodno obraditi skup podataka kako bi se osiguralo da je u ispravnom formatu za modele obuke na Google Cloud-u.
1. Preuzmite skup podataka: Skup podataka je dostupan u više formata, uključujući CSV i NumPy nizove. Za korisnike TensorFlow-a, može se direktno učitati pomoću modula `tensorflow.keras.datasets`.
python from tensorflow.keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
2. Predobrada podataka: Normalizirajte vrijednosti piksela slika na raspon [0, 1] dijeljenjem sa 255. Ovaj korak je važan za osiguranje da se model efikasno konvergira tokom treninga.
python train_images = train_images/255.0 test_images = test_images/255.0
3. Preoblikovanje i povećanje podataka: Ovisno o arhitekturi modela, možda ćete trebati preoblikovati podatke. Uz to, razmotrite tehnike povećanja podataka kao što su rotacija, zumiranje i horizontalno okretanje kako biste poboljšali robusnost modela.
Korak 3: Razvoj modela
Razvijte model mašinskog učenja prikladan za skup podataka Fashion-MNIST. Konvolucione neuronske mreže (CNN) su popularan izbor zbog svoje efikasnosti u zadacima klasifikacije slika.
1. Definirajte arhitekturu modela: Koristite TensorFlow ili PyTorch da definirate CNN model. Tipična arhitektura može uključivati više konvolucijskih slojeva praćenih slojevima maksimalnog skupljanja i potpuno povezani gusti sloj.
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. Sastavite model: Odaberite odgovarajući optimizator, funkciju gubitka i metriku. Za višeklasnu klasifikaciju, obično se koristi `sparse_categorical_crossentropy`.
python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
3. Obučite model: Postavite model na podatke o treningu. Koristite validacijske podatke za praćenje performansi modela i izbjegavanje prekomjernog prilagođavanja.
python model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
Korak 4: Primjena modela na Google Cloud AI platformi
Nakon što je model obučen, sljedeći korak je njegova implementacija na Google Cloud AI Platformu za skalabilna predviđanja.
1. Sačuvajte model: Izvezite obučeni model u format kompatibilan s Google Cloudom, kao što je TensorFlow SavedModel.
python model.save('fashion_mnist_model')
2. Otpremite model na Google Cloud Storage: Koristite alatku komandne linije `gsutil` da otpremite model u Google Cloud Storage bucket.
bash gsutil cp -r fashion_mnist_model gs://your-bucket-name/
3. Kreirajte model na AI platformi: U Google Cloud konzoli idite na AI Platform > Modeli i kreirajte novi model. Odredite naziv modela i region.
4. Postavite verziju modela: Kreirajte novu verziju modela navođenjem putanje Cloud Storage za SavedModel. Konfigurišite tip mašine i opcije skaliranja na osnovu vaših potreba za predviđanjem.
5. Testirajte implementaciju: Koristite uslugu predviđanja AI Platforme da testirate raspoređeni model. Možete slati HTTP zahtjeve sa podacima slike do krajnje točke modela i primati predviđanja.
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)
Korak 5: Evaluacija modela i iteracija
Nakon implementacije, važno je procijeniti performanse modela i ponoviti dizajn kako bi se poboljšala tačnost i efikasnost.
1. Monitor performansi modela: Koristite alate za praćenje Google Clouda za praćenje metrika performansi modela kao što su kašnjenje, propusnost i tačnost predviđanja. Ovi podaci su od neprocjenjive vrijednosti za identifikaciju uskih grla i područja za poboljšanje.
2. A/B testiranje: Provedite A/B testiranje kako biste uporedili različite verzije modela. Ovaj pristup pomaže u razumijevanju utjecaja promjena i odabiru modela s najboljim učinkom.
3. Kontinuirana integracija i implementacija (CI/CD): Implementirati CI/CD prakse za automatizaciju implementacije novih verzija modela. Ova postavka osigurava da se poboljšanja brzo isporuče u proizvodnju.
4. Povratna veza: Uspostavite povratnu petlju s krajnjim korisnicima kako biste prikupili uvid u predviđanja modela. Koristite ove povratne informacije da fino podesite model i poboljšate njegovu relevantnost za aplikacije u stvarnom svijetu.
5. Prekvalifikacija sa novim podacima: Redovno ažurirajte model novim podacima kako biste održali njegovu tačnost tokom vremena. Ova praksa je posebno važna u modnoj industriji, gdje se trendovi i stilovi brzo razvijaju.
Fashion-MNIST skup podataka pruža praktičan slučaj upotrebe za implementaciju modela klasifikacije slika na Google Cloud platformi AI. Prateći navedene korake, možete efikasno iskoristiti Google-ovu infrastrukturu za izgradnju, implementaciju i održavanje skalabilnih modela mašinskog učenja. Ovaj proces ne samo da poboljšava tačnost i performanse modela, već i osigurava njegovu primjenjivost na scenarije iz stvarnog svijeta u modnoj industriji.
Google često ažurira svoju AI platformu (od 2024. evoluirala u Vertex AI platformu). Ako naiđete na bilo kakve probleme s ovim ažuriranjima, možete pokušati i sa sljedećim kodom:
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}")
Ostala nedavna pitanja i odgovori u vezi EITC/AI/GCML Google Cloud Machine Learning:
- Ono što je jezik programiranja za mašinsko učenje je samo Python
- Kako se mašinsko učenje primjenjuje u svijetu nauke?
- Kako odlučujete koji algoritam mašinskog učenja ćete koristiti i kako ga pronalazite?
- Koje su razlike između Federated Learning, Edge Computinga i On-Device Machine Learning?
- Kako pripremiti i očistiti podatke prije treninga?
- Koji su specifični početni zadaci i aktivnosti u projektu mašinskog učenja?
- Koja su osnovna pravila za usvajanje specifične strategije i modela mašinskog učenja?
- Koji parametri ukazuju da je vrijeme za prelazak s linearnog modela na duboko učenje?
- Koja verzija Pythona bi bila najbolja za instaliranje TensorFlow-a kako bi se izbjegli problemi s nedostupnom TF distribucijom?
- Šta je duboka neuronska mreža?
Pogledajte više pitanja i odgovora u EITC/AI/GCML Google Cloud Machine Learning