Так что я пытаюсь понять нейронные сети с тех пор, как наткнулся на блог Адама Гейтги по машинному обучению. Я прочитал столько, сколько я могу по этому вопросу (что я могу понять) и полагаю, что я понимаю все широкие концепции и некоторые работы (несмотря на то, что они очень слабы в математике), нейроны, синапсы, веса, функции стоимости, обратное распространение и т.д. Однако я не смог понять, как перевести проблемы реального мира в решение нейронной сети.
В качестве примера можно привести Адам Гейтги, который в качестве примера использует систему прогнозирования цен на жилье, в которой приводится набор данных, содержащий количество спален , кв. футов , соседства и цена продажи вы можете обучить нейронную сеть, чтобы иметь возможность предсказать цену дома. Тем не менее, он останавливается на пути реализации возможного решения в коде В качестве примера он ближе всего подходит к базовой функции, демонстрирующей, как вы реализуете веса:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
Другие ресурсы, по-видимому, в большей степени сосредоточены на математике, и единственный базовый пример кода, который я могу найти, который я понимаю (т.е. это не все пение, а вся кодовая база классификации танцующих изображений) - это реализация, которая обучает нейронную сеть быть XOR ворота, которые имеют дело только с 1 и 0.
Так что в моих знаниях есть пробел, который я просто не могу преодолеть. Если мы вернемся к проблеме прогнозирования цен на жилье , как сделать данные пригодными для подачи в нейронную сеть? Например:
- Количество спален: 3
- Площадь ноги: 2000
- Окрестности: Нормалтаун
- Цена продажи: $ 250 000
Можете ли вы просто передать 3 и 2000 непосредственно в нейронную сеть, потому что они числа? Или вам нужно превратить их во что-то еще? Точно так же, как насчет значения Normaltown , это строка, как вы переводите ее в значение, которое может понять нейронная сеть? Можете ли вы просто выбрать число, например индекс, при условии, что оно совпадает с данными?
В большинстве примеров нейронных сетей, которые я видел, числа, проходящие между слоями, бывают от 0 до 1 или от -1 до 1. Итак, в конце обработки, как вы преобразуете выходное значение во что-то полезное, например, 185 000 долларов ?
Я знаю, что пример прогнозирования цен на жилье, вероятно, не является особенно полезной проблемой, учитывая, что он сильно упрощен до трех точек данных. Но я просто чувствую, что если бы я мог преодолеть это препятствие и написать чрезвычайно простое приложение, которое тренируется с использованием псевдо-реальных данных и выплевывает псевдо-реальный ответ, то я бы сломал его и смог бы пнуть дальше и углубиться в машинное обучение.