Эволюционные алгоритмы и нейронные сети используются в тех же доменах?

foreach ( $cart->cart_contents as $key => $values ) {
                    $product_id = $values['product_id'];

                    foreach ($cart->get_cart_item_quantities() as $key => $value){
                        //print_r($key[1]);
                        $key = array_keys($cart->get_cart_item_quantities())[1];
                        if($key == $product_id){

                            $product = wc_get_product($product_id);
                            $get_price = $product->get_price();
                            $new_price = $get_price / 2;
                            $values['data']->set_price($new_price);

                            break;
                        }
                    }
                }
//Please try this, it will work for sure in same above hook :)
19
задан Salvador Dali 14 August 2015 в 07:03
поделиться

4 ответа

Вот соглашение: в проблемах машинного обучения у Вас обычно есть два компонента:

a) модель (функциональный класс, и т.д.)

b) Методы установки модели (optimizaiton алгоритмы)

Нейронные сети являются моделью: учитывая расположение и установку весов, нейронная сеть производит некоторый вывод. Там существуйте некоторые канонические методы установки нейронным сетям, таким как обратная связь, сравнительное расхождение, и т.д. Однако большая точка нейронных сетей - то, что, если бы кто-то дал Вам 'правильные' веса, Вы преуспели бы на проблеме.

Эволюционные алгоритмы обращаются к второй части - установка модели. Снова, существуют некоторые канонические модели, которые идут с эволюционными алгоритмами: например, эволюционное программирование обычно пытается оптимизировать по всем программам конкретного типа. Однако EA являются по существу способом найти правильные значения параметров для конкретной модели. Обычно, Вы пишете свои параметры модели таким способом, которым перекрестная операция является разумной вещью сделать и повернуть заводную рукоятку EA для вывода разумной установки параметров.

Теперь, Вы могли, например, использовать эволюционные алгоритмы для обучения нейронной сети, и я уверен, что она была сделана. Однако критический бит, которого EA требует для работы, - то, что перекрестная операция должна быть разумной вещью сделать - принятием участия параметров от одной разумной установки и остальных от другой разумной установки, Вы будете часто заканчивать с еще лучшей установкой параметра. EA большинства раз используется, дело обстоит не так и он заканчивает тем, что был чем-то как моделируемый отжиг, только более сбивающий с толку и неэффективный.

19
ответ дан 30 November 2019 в 04:08
поделиться

Проблемы, которые требуют "интуиции", лучше подходят для ANNs, например, распознавания записи руки. Вы обучаете нейронную сеть с огромной суммой входа и оцениваете его, пока Вы не сделаны (это занимает много времени), но впоследствии у Вас есть алгоритм/система черного ящика, который может" предположение " ручная запись, таким образом, Вы держите небольшой мозг и используете его в качестве модуля много лет или чего-то. Поскольку обучение качество, ANN для сложной проблемы может занять месяцы, я - худший случай и удача.

Большинство других эволюционных алгоритмов" вычисляет " специальное решение на месте в своего рода шаблоне восхождения на вершину.

Также, как указано в другом ответе, во время времени выполнения ANN может" предположение " быстрее, чем большинство других эволюционных алгоритмов может" вычислять ". Однако нужно быть осторожным, так как ANN просто" , предположение " это могло бы быть неправильным.

4
ответ дан 30 November 2019 в 04:08
поделиться

Эволюционные алгоритмы (EA) являются медленными, потому что они полагаются на обучение без учителя: EA сказаны, что некоторые решения лучше, чем другие, но не как для улучшения их. Нейронные сети обычно быстрее, будучи экземпляром обучения с учителем: они знают, как сделать решение лучше при помощи спуска градиента в функциональном пространстве по определенным параметрам; это позволяет им достигать допустимого решения быстрее. Нейронные сети часто используются, когда нет достаточного знания о проблеме для других методов для работы.

1
ответ дан 30 November 2019 в 04:08
поделиться

Что касается проблемных областей, я сравниваю искусственные нейронные сети, обученные обратным распространением, с эволюционным алгоритмом.

Эволюционный алгоритм развертывает рандомизированный поиск луча, что означает, что ваши эволюционные операторы разрабатывают кандидатов быть протестированным и сравненным по их пригодности. Эти операторы обычно недетерминированы, и вы можете спроектировать их так, чтобы они могли как находить кандидатов в непосредственной близости, так и кандидатов, которые находятся дальше в пространстве параметров, чтобы преодолеть проблему застревания в локальных оптимумах.

Однако успех EA подход во многом зависит от модели, которую вы разрабатываете, что является компромиссом между высоким потенциалом выражения (вы можете переобучить) и универсальностью (модель может быть не в состоянии выразить целевую функцию).

Поскольку нейронные сети обычно являются многослойными, пространство параметров не является выпуклым и содержит локальные оптимумы, алгоритмы градиентного спуска могут застрять. Градиентный спуск - это детерминированный алгоритм, который ищет в непосредственной близости. Вот почему нейронные сети обычно инициализируются случайным образом и поэтому вы должны обучать больше, чем одну модель.

Более того, вы знаете, что каждый скрытый узел в нейронной сети определяет гиперплоскость, вы можете спроектировать нейронную сеть, чтобы она хорошо соответствовала вашей проблеме. Существуют некоторые методы предотвращения переобучения нейронных сетей.

В общем, нейронные сети могут быть обучены быстро и получить разумные результаты с небольшими усилиями (просто попробуйте некоторые параметры). Теоретически достаточно большая нейронная сеть способна аппроксимировать любую целевую функцию, что, с другой стороны, делает его склонным к переобучению. Эволюционные алгоритмы требуют от вас множества вариантов дизайна для получения хороших результатов, наиболее сложным из которых, вероятно, является то, какую модель оптимизировать. Но EA может искать в очень сложных проблемных областях (как вы определяете) и быстро получать хорошие результаты. AE могут оставаться успешными даже тогда, когда проблема (целевая функция) со временем меняется.

Книга Тома Митчелла по машинному обучению: http://www.cs.cmu.edu/~tom/mlbook.html

1
ответ дан 30 November 2019 в 04:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: