Введение в машинное обучение
В мире кодирования традиционный подход включает тщательное разбиение сложных требований на управляемые проблемы и написание кода для решения каждой из них. Однако появление машинного обучения произвело революцию в этом процессе, коренным образом изменив то, как мы решаем проблемы. Машинное обучение работает путем ввода данных и желаемых результатов, а взамен создает правила или шаблоны для достижения этих результатов. Этот метод оказывается бесценным при решении проблем, которые сложно или даже невозможно расшифровать с помощью традиционных методов, основанных на правилах. Вместо явного выражения проблемы в виде набора правил машинное обучение использует огромное количество помеченных примеров для обучения системы. Благодаря этому обучению алгоритмы машинного обучения могут выводить основные правила, обнаруживая и анализируя закономерности в данных. В авангарде распознавания образов в машинном обучении лежат нейронные сети, которые стали рабочими лошадками глубокого обучения. Примечательно, что для реализации нейронных сетей часто требуется всего несколько строк кода, что предлагает относительно простые средства использования их возможностей. Развитие глубокого обучения открыло новую эру возможностей, предлагая больше, чем просто альтернативный подход к традиционному программированию. Это изменило наш подход к решению проблем, позволив нам решать сложные задачи с беспрецедентной эффективностью и инновациями.
Машинное обучение включает в себя шаблоны обучения, которые различают разные вещи.
Пример:
Напишите модель, чтобы узнать правила для x→y из данных:
x = [-1.0, 0.0, 1.0, 2.0, 3.0, 4.0] y = [-3.0, -1.0, 1.0, 3.0, 5.0, 7.0] import tensorflow as tf import numpy as np from tensorflow import keras # Build a simple Sequential model model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])]) # Compile the model model.compile(optimizer='sgd', loss='mean_squared_error') # Declare model inputs and outputs for training xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float) # Train the model model.fit(xs, ys, epochs=500) # Make a prediction print(model.predict([10.0])) # Output : [[18.980131]]
Объяснение кода:
- Код импортирует необходимые библиотеки: TensorFlow, NumPy и Keras.
- Последовательная модель определяется с помощью
tf.keras.Sequential()
, который создает линейный стек слоев. - Модель имеет один плотный слой с одним нейроном (
units=1
) и входной формой с одним значением (input_shape=[1]
). - Модель скомпилирована с использованием стохастического градиентного спуска (
optimizer='sgd'
) в качестве оптимизатора и среднеквадратичной ошибки (loss='mean_squared_error'
) в качестве функции потерь. - Обучающие данные объявляются с
xs
, представляющими входные значения, иys
, представляющими соответствующие выходные значения. - Модель обучается с использованием
model.fit()
путем предоставления входных и выходных данных (xs
иys
) и указания количества эпох, равного 500. - После обучения модель делает прогноз для невидимого входного значения (
10.0
), используяmodel.predict()
. - Прогнозируемый вывод выводится на консоль.
Вопрос:
# Make a prediction print(model.predict([10.0])) **Imagine that house pricing is as easy as: A house has a base cost of 50k, and every additional bedroom adds a cost of 50k. This will make a 1 bedroom house cost 100k, a 2 bedroom house cost 150k etc. How would you create a neural network that learns this relationship so that it would predict a 7 bedroom house as costing close to 400k etc. Hint: Your network might work better if you scale the house price down. You don't have to give the answer 400...it might be better to create something that predicts the number 4, and then your answer is in the 'hundreds of thousands' etc.**
Код :
import tensorflow as tf import numpy as np # GRADED FUNCTION: house_model def house_model(): ### START CODE HERE # Define input and output tensors with the values for houses with 1 up to 6 bedrooms # Hint: Remember to explictly set the dtype as float xs = np.array([0,1,2,3,4,5,6,7,8,9],dtype = float) ys = np.array([0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0],dtype = float) # Define your model (should be a model with 1 dense layer and 1 unit) model = tf.keras.Sequential([tf.keras.layers.Dense(units=1,input_shape=[1])]) # Compile your model # Set the optimizer to Stochastic Gradient Descent # and use Mean Squared Error as the loss function model.compile(optimizer='sgd', loss='mean_squared_error') # Train your model for 1000 epochs by feeding the i/o tensors model.fit(xs, ys, epochs=1000) ### END CODE HERE return model # Declare model inputs and outputs for training xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float) # Train the model model.fit(xs, ys, epochs=500) # Make a prediction print(model.predict([10.0]))
Источник: https://www.coursera.org/learn/introduction-tensorflow/
Источник кода: https://github.com/ https-deeplearning-ai/tensorflow-1-public/tree/main/C1/W1
Свяжитесь со мной : https://www.linkedin.com/in/yash-bhaskar/
Еще такие статьи: https:// medium.com/@yash9439