Ugrás a fő tartalomhoz

Programozási alapok MI projektekhez

Bevezetés

A gépi tanulási projektek fejlesztéséhez elengedhetetlen a megfelelő programozási alapok elsajátítása. Ebben a leckében a Python nyelv és a TensorFlow keretrendszer használatát tanuljuk meg MI projektek létrehozásához.

Python programozási alapok

Fejlesztői környezet beállítása

  1. Python telepítése

    # Python letöltése és telepítése
    # Anaconda környezet létrehozása
    conda create -n ml-env python=3.9
    conda activate ml-env

    # Szükséges könyvtárak telepítése
    pip install numpy pandas matplotlib tensorflow scikit-learn
  2. IDE választás

Alapvető Python koncepciók MI projektekhez

  1. Numpy alapok

    import numpy as np

    # Tömbök létrehozása
    arr = np.array([1, 2, 3, 4, 5])
    matrix = np.array([[1, 2], [3, 4]])

    # Műveletek
    print(arr.mean()) # Átlag
    print(arr.std()) # Szórás
    print(matrix.T) # Transzponálás
  2. Pandas adatkezelés

    import pandas as pd

    # Adatok betöltése
    df = pd.read_csv('data.csv')

    # Adatok előkészítése
    X = df.drop('target', axis=1)
    y = df['target']

    # Hiányzó értékek kezelése
    df.fillna(df.mean(), inplace=True)

TensorFlow alapok

TensorFlow telepítése és első lépések

  1. Telepítés és ellenőrzés

    import tensorflow as tf

    # GPU elérhetőség ellenőrzése
    print(tf.config.list_physical_devices('GPU'))

    # TensorFlow verzió
    print(tf.__version__)
  2. Tenzorok kezelése

    # Tenzor létrehozása
    t1 = tf.constant([1, 2, 3])
    t2 = tf.constant([[1, 2], [3, 4]])

    # Műveletek tenzorokkal
    result = tf.matmul(t2, t2) # Mátrix szorzás

Egyszerű neurális háló építése

  1. Sequential modell

    from tensorflow.keras import Sequential
    from tensorflow.keras.layers import Dense

    # Modell építése
    model = Sequential([
    Dense(64, activation='relu', input_shape=(784,)),
    Dense(32, activation='relu'),
    Dense(10, activation='softmax')
    ])
  2. Modell tanítása

    # Tanítás
    history = model.fit(
    X_train, y_train,
    epochs=10,
    batch_size=32,
    validation_split=0.2
    )

Egyszerű neurális hálók

Osztályozási feladat

  1. MNIST számjegy felismerés
    from tensorflow.keras.datasets import mnist

    # Adatok betöltése
    (X_train, y_train), (X_test, y_test) = mnist.load_data()

Regressziós feladat

# Boston lakásár előrejelzés
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split

Gyakorlati projektek

1. Képosztályozó projekt

from tensorflow.keras.preprocessing.image import ImageDataGenerator

# Adatok augmentálása
datagen = ImageDataGenerator(
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True
)

2. Szövegfeldolgozási projekt

from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences

Haladó koncepciók

Modell finomhangolás

  1. Hiperparaméter optimalizálás

    from sklearn.model_selection import GridSearchCV
    from tensorflow.keras.wrappers.scikit_learn import KerasClassifier
  2. Early stopping

    from tensorflow.keras.callbacks import EarlyStopping

    early_stop = EarlyStopping(
    monitor='val_loss',
    patience=3,
    restore_best_weights=True
    )

További források

Hivatkozások

  1. TensorFlow dokumentáció
  2. Keras API referencia
  3. Deep Learning Book (Goodfellow et al.)