To make adjustments to a membership trapezoid, each leg of the trapezoid is fit to a set of desired points using a least squares line fit. Recall that after every training epoch we have a set of desired points for each leg of each trapezoid. The new z1 (z2) value of the trapezoid is set to the point at which the left (right) leg intersects 0. The new n1 (n2) value is set to midway between the old n1 (n2) value and the value where the left (right) leg of the fitted line intersects y=1. The new n1 and n2 values are not directly set to where the fitted trapezoid legs intersect 1 because overestimating the normal range [n1,n2] can eliminate some desired points that should be used in the least squares line fit for a trapezoid leg. Desired points in the normal [n1,n2] range by definition do not fall on a leg of the trapezoid, and are not used when adjusting the trapezoid legs. Therefore, if the normal range is overestimated, points that truly belong on a trapezoid leg will not be used to adjust the leg. By gradually moving the normal points n1 and n2, OMLET is better able to converge on an appropriate solution. After the new range parameter values (z1,n1,n2,z2) have been determined, OMLET checks to make sure that none of them lie outside any limits that may have been set in the initialization phase. Restrictions on new range parameters assure that the membership functions remain trapezoidal (or triangular if n1 = n2). First, z1 must be less than or equal to n1. Similarly z2 must be greater than or equal to n2. If z1 (z2) is greater (less) than n1 (n2) then z1 (z2) is set equal to n1 (n2). Also, n1 must be less than or equal to n2. In the case that there is only a single point in the set of desired points for a trapezoid leg, the leg is defined by the normal point for that leg (n1 for the left leg and n2 for the right leg) and the single desired point.
The training data may provide target points for only a portion of a trapezoid for some of the ranges. OMLET is capable of detecting this situation by observing the slope of the fitted line, and adjusting the membership function appropriately. The slope of the left trapezoid leg should be positive and the slope of the right leg should be negative. If the slope of the fitted trapezoid leg is nearly horizontal (close to 0.0), or the sign of the slope is opposite what is expected, then the normal point on that leg is moved (again, n1 for the left leg and n2 for the right leg) outward. This adjustment allows OMLET to learn one-legged membership functions, and to handle (as well as possible) situations when not enough training data is available.
A method of escaping local minima was empirically found useful. Normally OMLET does not allow a trapezoid leg to change if the change causes an increase in total error for the training set. So, it is possible for zero, one or both trapezoid legs for each range to get adjusted on an epoch. If learning slows down sufficiently, then OMLET will temporarily allow trapezoid leg changes that cause an increase in overall error in hopes of escaping a possible local minima. More precisely, if the total training set error for one epoch decreases by less than a specified threshold, then range changes that cause an increase in overall error are permitted for the next training epoch.