Co to jest sztuczna inteligencja?
Czym tak naprawdę jest sztuczna inteligencja dzisiaj? Sprowadza się ona do operacji na liczbach, na dużych zbiorach liczb. Odpowiednie algorytmy przeliczają ogromne ilości danych liczbowych i następnie wyrzucają z siebie jakiś wynik.
Praktyczny przykład wykorzystania uczenia maszynowego
Jednym z najprostszych przykładów takiej sztucznej inteligencji jest problem klasyfikacji. Najpierw sprowadzam dane wejściowe, np. obraz do postaci liczbowej. W przypadku grafiki przekształcam ją do skali szarości. Następnie przygotowuję tablicę liczb, która dla każdego piksela obrazu przechowuje jego poziom szarości oczywiście wyrażony w jakimś zakresie liczb np. (0-255).
Następnie, mając już odpowiednią ilość takich przekształconych obrazów, czyli tabel reprezentujących te obrazy, przygotowuję dwa zbiory danych: jeden zawiera dane do uczenia sieci neuronowej, drugi to zbiór testujący wcześniejszy trening sieci.
Uczenie maszynowe opiera się na modelach, najpierw definiuję model, czyli zbiór reguł w ramach których będzie funkcjonowała moja sieci neuronowa. Kolejnym krokiem jest uczenie tego modelu. Żeby przygotować model posłużę się biblioteką tensorflow rozwijaną przez firmę Google. Wykorzystam najprostszy przykład przygotowania modelu ze strony https://www.tensorflow.org/tutorials/
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(512, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer=’adam’,
loss=’sparse_categorical_crossentropy’,
metrics=[‚accuracy’])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
Powyższy kod pokazuje jak użyć tej biblioteki dla wcześniej przygotowanego zbioru danych. MNIST to zbiór obrazów cyfr pisanych odręcznie. Zamiast użyć zbioru z przykładu zamienię go na swój własny zbiór obrazów przekształconych do odpowiednich tabel liczbowych.
Następnie wystarczy uruchomić skrypt i on sam już zadba o to żeby przygotować model do uczenia i nauczyć i przetestować sieć. Później, taki model mogę używać do rozróżniana cyfr, bądź innych znaków, które zostaną zadane jako parametry wejściowe sieci neuronowej.
Podsumowanie
Ten eksperyment pokazał mi, że sztuczna inteligencja to tak naprawdę działanie na dużych zbiorach danych. Najwięcej czasu poświęciłem na obróbkę i przygotowanie danych. Samo uczenie nie było skomplikowanym procesem. Do każdego rodzaju uczenia maszynowego są obecnie dostępne narzędzia, które pozwalają cały proces uprościć. Nie potrzebuję być ekspertem w dziedzinie sztucznej inteligencji, tak naprawdę operuje na zbiorach liczb i poddaje je przerwaniu przez dostępne za darmo narzędzia.
Inne tematy w dziale Technologie