16 votos

Ajustable Sigmoide de la Curva (Curva S) de $(0,0)$ $ (1,1)$

Siento que esta es una pregunta fácil, pero estoy en una pérdida. Actualmente tengo un conjunto de valores que me gustaría que sopesar por un S de la Curva. Mi rangos de datos de $0$ $1$y nunca sale de esos límites, pero casi cada versión de un Sigmoide veo asume $x = 0$ es el punto de inflexión. Además muchos de los Sigmoids llegar y=0 aproximadamente a las $x = -6$, e $y=1$ aprox $x= 6$. Sin embargo, en mi caso necesito para llegar a $y=0$$x=0$$y=1$$x=1$, y el punto de inflexión a ser a $x = 0.5$.

Para resumir necesito una Curva S que cumpla con los siguientes requisitos..

  • $x$ $0$ $1$
  • $y$ $0$ $1$
  • $0$ permanece $0$ $1$ permanece $1$
  • Ajustable en forma de diferentes Curvas
  • Bono Si me puede ajustar el punto de inflexión, mientras que el mantenimiento de las anteriores

Aquí es un ejemplo de lo anterior (excepto para un mueble de inflexión) http://www.guillermoluijk.com/misc/contrast.gif

He mirado en Sigmoids, la Logística, la canela y el cantar de aproximaciones, el contraste y la AI ecuaciones, y nada me pone lo que necesito. Cualquier explicación para ir junto con una respuesta sería muy apreciada!

10voto

Dino Dini Puntos 11

Puse tres en una cadena: yo uso el positivo de dominio de la NTS a "sesgar" la entrada, la segunda es la base sigmoide, y entonces yo uso el positivo de dominio para sesgar el resultado. El resultado es una muy flexible curva que tiendo a usar en todas partes ahora. Aquí está una Desmo hoja, creo que es lo que estaba buscando, aunque las otras respuestas parecen demasiado bueno. https://www.desmos.com/calculator/tswgrnoosy

7voto

cmnajs Puntos 193

Yo realmente odio a responder a mi propia pregunta, pero creo que he encontrado la respuesta. Me tropecé a través de una ecuación por Game Dev Dino Dini, lo que crea un medio normal sintonizable sigmoide que los rangos de$(0,0)$$(1,1)$. Sin embargo el $K$ valor es bastante flojo, en este caso. Dino sin embargo creó otra versión que publicó a través de Twitter que conduce a la media normal sintonizable sigmoide con una K en el rango de -1 a 1. Esta ecuación es...

$$\large \frac{kx-x}{2kx-k-1}=f(x)$$

$$ 0\leq x\leq 1,-1\leq k\leq 1$$

Para lograr una curva en forma de s. en el mismo rango que yo simplemente tenía que reducir la escala de la ecuación y hacer que funciones definidas a trozos. La mitad inferior, a continuación, se convierte en...

$$\large \frac{k*2x-2x}{2k*2x-k-1}*0.5$$ $$or$$ $$\large f(2x)*0.5$$ $$for$$ $$x\leq0.5, -1\leq k \leq 1$$

Y, a continuación, la mitad superior de la curva es...

$$\large 0.5*\frac{(-k*2(x-0.5))-(2(x-0.5)))}{2*-k*2(x-0.5)-(-k)-1}+0.5$$ $$or$$ $$\large 0.5*f(2(x-0.5))+0.5$$ $$for$$ $$ x>0.5, -1\leq -k \leq 1$$

tenga en cuenta el $k$ es negativo para la mitad superior de la curva. Aquí es un ejemplo de la mitad inferior y la mitad superior. La única cuestión que queda con esta ecuación es que, técnicamente $k = -1,1$ vuelve $y = 0$ $k = -0.9...,0.9...$ es lo suficientemente cerca. Por desgracia parece que no puedo ajustar mi punto de inflexión para ser otra cosa que $y=x=0.5$, pero que no era necesario que el núcleo de la operación.

2voto

  1. Seleccione uno de los extremos de "configuración" de la curva (por ejemplo, el magenta de la curva en el enlace).Definir los criterios de esta forma un poco más detenidamente, por ejemplo: $f(0) = 0$, $f(.5) = .5$, $f(1) = 1$, y la función es continua y diferenciable en todas partes. Además, $f(x) > x$$0 < x < .5$$f(x) > x$$.5 < x < 1$.

  2. Se dividen en dos en lo que ustedes llaman el "punto de inflexión" ($x=.5$).

  3. La construcción de un seccionalmente suave de la función en dos piezas (una por debajo de $.5$ y la de arriba) con las propiedades seleccionadas en el paso 1. Recomiendo el uso de funciones trigonométricas, sino exponencial y funciones de registro se puede hacer para trabajar así. Voy a llamar a esta función $g(x)$. Una posibilidad es dada por: $$ .5 pecado( 10x/pi ), x\leq.5 \\ -.5 pecado( 10x/pi )+1, x>.5 $$ Existen otras opciones, por supuesto.

  4. Para el logro de los otros, menos extrema, curvas en la misma familia, de interpolar linealmente entre el$g(x)$$x$, por ejemplo: $f(x) = a * g(x) + (1-a) * x$ donde $0 < a < 1$. Para otras curvas en la misma familia, pero en la otra dirección, se tiene que extrapolar, pero esto es simple: $f(x) = a * g(x) + (1-a) * x$ donde $-1 < a < 0$. Por lo tanto, la familia completa se da simplemente por $f(x) = a * g(x) + (1-a) * x$ donde $-1 < a < 1$.

2voto

Henry Puntos 1

Me gusta la respuesta. Gracias por publicar. Y me gustaría hacerlo más general: Punto de reflexión a través de (0,0) S-forma: $y=f(x,k)=Sign(x) * (k * Abs(x) - Abs(x)) / (2 * k * Abs(x) - k - 1)$, donde -1<x<1 y -1<y<1. El escalado y la traducción que se ajuste en un rectángulo: $g(x)=y_{scale} * f(x / x_{scale} - x0, k) + y0$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X